Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Documents / InputScopeAttribute.cs / 1305600 / InputScopeAttribute.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description: InputScopeAttribute is an image object that links IOleDataObject.
//
// History:
// 10/02/2003 : yutakas
//
//---------------------------------------------------------------------------
using System;
using System.Security;
using System.Security.Permissions;
using System.Runtime.InteropServices;
using System.Windows.Threading;
using System.Diagnostics;
using System.Windows.Media;
using System.Windows.Input;
using System.Windows.Documents;
using System.Windows.Controls;
using MS.Win32;
namespace System.Windows.Documents
{
//
// InputScopeAttribute is Image object that links IOleDataObject, which
// is insterted by ITextStoreACP::InsertEmbedded().
//
internal class InputScopeAttribute : UnsafeNativeMethods.ITfInputScope
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
// Creates a new InputScopeAttribute instance.
internal InputScopeAttribute(InputScope inputscope)
{
_inputScope= inputscope;
}
#endregion Constructors
//------------------------------------------------------
//
// Internal Methods
//
//-----------------------------------------------------
#region Internal Methods
// A method of ITfInputScope.
// This returns InputScopes in the array that is allocated by CoTaskMemAlloc.
///
/// Critical - it satisfies Marshal.* LinkDemands for unmanaged code permissions. handles out a valid pointer to unmanaged memory.
///
[SecurityCritical]
public void GetInputScopes(out IntPtr ppinputscopes, out int count)
{
if (_inputScope != null)
{
int offset = 0;
count = _inputScope.Names.Count;
try
{
ppinputscopes = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(Int32)) * count);
}
catch (OutOfMemoryException)
{
throw new COMException(SR.Get(SRID.InputScopeAttribute_E_OUTOFMEMORY), NativeMethods.E_OUTOFMEMORY);
}
for (int i = 0; i < count; i++)
{
Marshal.WriteInt32(ppinputscopes, offset, (Int32)((InputScopeName)_inputScope.Names[i]).NameValue);
offset += Marshal.SizeOf(typeof(Int32));
}
}
else
{
ppinputscopes = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(Int32)) * 1);
Marshal.WriteInt32(ppinputscopes, (Int32)InputScopeNameValue.Default);
count = 1;
}
}
// A method of ITfInputScope.
// This returns BSTRs in the array that is allocated by CoTaskMemAlloc.
///
/// Critical - it satisfies Marshal.AllocCoTaskMem() LinkDemand for unmanaged code permissions. handles out a valid pointer to unmanaged memory.
///
[SecurityCritical]
public int GetPhrase(out IntPtr ppbstrPhrases, out int count)
{
count = _inputScope == null ? 0 : _inputScope.PhraseList.Count;
try
{
ppbstrPhrases = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(IntPtr))*count);
}
catch (OutOfMemoryException)
{
throw new COMException(SR.Get(SRID.InputScopeAttribute_E_OUTOFMEMORY), NativeMethods.E_OUTOFMEMORY);
}
int offset = 0;
for(int i=0; i 0 ? NativeMethods.S_OK : NativeMethods.S_FALSE;
}
// A method of ITfInputScope.
public int GetRegularExpression(out string desc)
{
desc = null;
if (_inputScope != null)
{
desc = _inputScope.RegularExpression;
}
return desc != null ? NativeMethods.S_OK : NativeMethods.S_FALSE;
}
// A method of ITfInputScope.
public int GetSRGC(out string desc)
{
desc = null;
if (_inputScope != null)
{
desc = _inputScope.SrgsMarkup;
}
return desc != null ? NativeMethods.S_OK : NativeMethods.S_FALSE;
}
// A method of ITfInputScope.
public int GetXML(out string desc)
{
desc = null;
return NativeMethods.S_FALSE;
}
#endregion Internal Methods
//------------------------------------------------------
//
// Internal Properties
//
//------------------------------------------------------
#region Internal Properties
#endregion Internal Properties
//-----------------------------------------------------
//
// Private Fields
//
//------------------------------------------------------
#region Private Fields
// InputScope value for this instance for ITfInputScope.
private InputScope _inputScope;
#endregion Private Fields
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Listen.cs
- MiniParameterInfo.cs
- UriExt.cs
- TextBoxBase.cs
- WindowsListViewGroup.cs
- CursorConverter.cs
- WindowsIPAddress.cs
- XmlNodeChangedEventManager.cs
- ActivatableWorkflowsQueryResult.cs
- UpdatePanelTrigger.cs
- SystemIPGlobalProperties.cs
- SignedPkcs7.cs
- Point3DValueSerializer.cs
- HelpProvider.cs
- InputLangChangeRequestEvent.cs
- XPathAncestorIterator.cs
- CacheVirtualItemsEvent.cs
- SamlSecurityTokenAuthenticator.cs
- HierarchicalDataSourceDesigner.cs
- _Rfc2616CacheValidators.cs
- HelpKeywordAttribute.cs
- AttributeCollection.cs
- CodeTypeDeclarationCollection.cs
- _NegoState.cs
- CompositeFontParser.cs
- SetStoryboardSpeedRatio.cs
- EventWaitHandle.cs
- UncommonField.cs
- GenericsInstances.cs
- PerspectiveCamera.cs
- ButtonFieldBase.cs
- FormClosedEvent.cs
- ClrProviderManifest.cs
- NonSerializedAttribute.cs
- ConditionCollection.cs
- EntityUtil.cs
- HttpVersion.cs
- _ContextAwareResult.cs
- HostSecurityManager.cs
- TemplateControlBuildProvider.cs
- NamespaceInfo.cs
- HttpDebugHandler.cs
- AspNetSynchronizationContext.cs
- RoleGroupCollection.cs
- PartialCachingAttribute.cs
- WindowsFormsSynchronizationContext.cs
- Axis.cs
- NamespaceInfo.cs
- SemanticResolver.cs
- ProjectionCamera.cs
- TextRange.cs
- PropertyInfoSet.cs
- UnsafeNativeMethods.cs
- LineServices.cs
- ExistsInCollection.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- AnnotationStore.cs
- ValueTable.cs
- BooleanExpr.cs
- CodeGotoStatement.cs
- KeySplineConverter.cs
- TextBlockAutomationPeer.cs
- X509Chain.cs
- DuplexSecurityProtocolFactory.cs
- CacheChildrenQuery.cs
- __Filters.cs
- IsolatedStoragePermission.cs
- _FixedSizeReader.cs
- OptimalTextSource.cs
- RightsManagementEncryptionTransform.cs
- DesignerSerializationVisibilityAttribute.cs
- ListManagerBindingsCollection.cs
- QilSortKey.cs
- ExpressionWriter.cs
- LineInfo.cs
- DeviceContext2.cs
- CellConstant.cs
- Closure.cs
- OracleDataReader.cs
- BlockCollection.cs
- BindingCollection.cs
- SymbolPair.cs
- SpellerStatusTable.cs
- WindowProviderWrapper.cs
- JapaneseLunisolarCalendar.cs
- SqlDataSourceCommandEventArgs.cs
- CompilationRelaxations.cs
- QilInvokeLateBound.cs
- ToolStripManager.cs
- FileNotFoundException.cs
- IntSumAggregationOperator.cs
- DateTimeEditor.cs
- BitmapEffectInputData.cs
- ListViewItemEventArgs.cs
- ExceptionValidationRule.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- DbQueryCommandTree.cs
- SchemaMapping.cs
- HttpModulesSection.cs
- TreeNodeSelectionProcessor.cs