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; i0 ? 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
- BindingEntityInfo.cs
- DateTimeAutomationPeer.cs
- BaseAsyncResult.cs
- PropertyTabChangedEvent.cs
- CodePageUtils.cs
- SubclassTypeValidator.cs
- Stack.cs
- DataPagerField.cs
- DependencyPropertyAttribute.cs
- SMSvcHost.cs
- FtpCachePolicyElement.cs
- SemanticResultValue.cs
- Style.cs
- BrushConverter.cs
- HttpContext.cs
- CompilationSection.cs
- ImageMap.cs
- SpecularMaterial.cs
- FontDriver.cs
- MessageQueuePermission.cs
- Configuration.cs
- FieldDescriptor.cs
- ResizeGrip.cs
- ImageBrush.cs
- Evaluator.cs
- FixedTextContainer.cs
- RoutedPropertyChangedEventArgs.cs
- dataprotectionpermission.cs
- ItemsPresenter.cs
- XmlSchemaCollection.cs
- mda.cs
- FaultHandlingFilter.cs
- VoiceObjectToken.cs
- SymbolEqualComparer.cs
- ProviderIncompatibleException.cs
- Trace.cs
- PropertyPathConverter.cs
- TriggerCollection.cs
- _ConnectStream.cs
- CollectionChangedEventManager.cs
- GridItemCollection.cs
- X500Name.cs
- precedingsibling.cs
- BitmapSource.cs
- _Win32.cs
- newitemfactory.cs
- InternalConfigConfigurationFactory.cs
- DefaultTypeArgumentAttribute.cs
- Configuration.cs
- BufferAllocator.cs
- BitmapEffectState.cs
- NamedPipeConnectionPoolSettings.cs
- BuilderPropertyEntry.cs
- MessageSmuggler.cs
- SafeEventLogReadHandle.cs
- InvalidAsynchronousStateException.cs
- DataTableClearEvent.cs
- SoapSchemaMember.cs
- SecuritySessionServerSettings.cs
- WindowsRichEditRange.cs
- CodeValidator.cs
- MetadataPropertyvalue.cs
- TypeConverterAttribute.cs
- DataGridViewMethods.cs
- ToolStripComboBox.cs
- WindowsListViewScroll.cs
- CategoriesDocument.cs
- XmlNodeReader.cs
- StylusShape.cs
- KeysConverter.cs
- PopupEventArgs.cs
- OLEDB_Util.cs
- WebBrowserPermission.cs
- DateTimeFormat.cs
- CacheAxisQuery.cs
- HGlobalSafeHandle.cs
- M3DUtil.cs
- RestHandlerFactory.cs
- sitestring.cs
- ReaderWriterLock.cs
- FtpWebResponse.cs
- ShutDownListener.cs
- DictionaryTraceRecord.cs
- OdbcConnection.cs
- ShaderRenderModeValidation.cs
- DataContractJsonSerializer.cs
- PrintPageEvent.cs
- CssStyleCollection.cs
- RegexCompiler.cs
- ADMembershipProvider.cs
- DeviceOverridableAttribute.cs
- ReliabilityContractAttribute.cs
- TextCompositionManager.cs
- SqlNode.cs
- XPathPatternParser.cs
- GroupItem.cs
- AvTraceFormat.cs
- StyleModeStack.cs
- SymDocumentType.cs
- WebPartEditorApplyVerb.cs