com topic

COM-based APIs

Windows APIs that use the COM invocation model.

Since the win32 package primarily focuses on providing a lightweight wrapper for the underlying Windows API primitives, you can use the same API calls as described in Microsoft documentation to create an manipulate objects (e.g. CoCreateInstance and IUnknown->QueryInterface). However, since this introduces a certain amount of boilerplate and non-idiomatic Dart code, the library also provides some helper functions that reduce the labor compared to a pure C-style calling convention.

Initializing the COM library

Before you call any COM functions, first initialize the COM library by calling the CoInitializeEx function. Details of the threading models are outside the scope of this document, but typically you should write something like:

final hr = CoInitializeEx(
    nullptr, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE);
if (FAILED(hr)) throw WindowsException(hr);

Creating a COM object

You can create COM objects using the C library:

hr = CoCreateInstance(clsid, nullptr, CLSCTX_INPROC_SERVER, iid, ppv);

However, rather than manually allocate GUID structs for the clsid and iid values, checking the hr result code and deal with casting the ppv return object, it is easier to use the createFromID static helper function:

final fileDialog2 = IFileDialog2(
    COMObject.createFromID(CLSID_FileOpenDialog, IID_IFileDialog2));

createFromID returns a Pointer<COMObject> containing the requested object, which can then be cast into the appropriate interface as shown above.

Asking a COM object for an interface

COM allows objects to implement multiple interfaces, but it does not let you merely cast an object to a different interface. Instead, returned pointers are to a specific interface. However, every COM interface in the win32 package derives from IUnknown, so as in other language implementations of COM, you may call queryInterface on any object to retrieve a pointer to a different supported interface.

More information on COM interfaces may be found in the Microsoft documentation.

COM interfaces supply a method that wraps queryInterface. If you have an existing COM object, you can call it as follows:

  final modalWindow = IModalWindow(fileDialog2.toInterface(IID_IModalWindow));

or, you can use the from constructor that wraps the toInterface for you:

  final modalWindow = IModalWindow.from(fileDialog2);

Where createFromID creates a new COM object, toInterface casts an existing COM object to a new interface.

Attempting to cast a COM object to an interface it does not support will fail, of course. A WindowsException will be thrown with an hr of E_NOINTERFACE.

Calling a method on a COM object

No special considerations are needed here; however, it is wise to assign the return value to a variable and test it for success or failure. You can use the SUCCEEDED() or FAILED() top-level functions to do this, for example:

final hr = fileOpenDialog.show(NULL);
if (SUCCEEDED(hr)) {
  // Do something with the returned dialog box values
}

Failures are reported as HRESULT values (e.g. E_ACCESSDENIED). Sometimes a Win32 error code is converted to an HRESULT, as in the case where a user cancels a common dialog box:

final hr = fileOpenDialog.show(NULL);
if (FAILED(hr) && hr == HRESULT_FROM_WIN32(ERROR_CANCELLED)) {
  // User clicked cancel
}

Releasing COM objects

Most of the time, you don't need to do anything as COM objects are automatically released by Finalizer when they go out of scope.

However, if you're manually managing the lifetime of the object (i.e. by calling the .detach()), you should release it by calling the .release():

fileOpenDialog.release(); // Release the interface

Often this will be called as part of a try / finally block, to guarantee that the object is released even if an exception is thrown.

A full example of these calls can be found in the com_demo.dart file in the example\ subfolder.

Classes

ApplicationActivationManager com
AppxFactory com
COMObject com
A representation of a generic COM object. All Dart COM objects inherit from this class.
CUIAutomation com
CUIAutomation8 com
DesktopWallpaper com
FileOpenDialog com
FileSaveDialog com
IAgileObject com
Marks an interface as agile across apartments.
IApplicationActivationManager com
Provides methods which activate Windows Store apps for the Launch, File, and Protocol extensions. You will normally use this interface in debuggers and design tools.
IAppxFactory com
Creates objects for reading and writing app packages.
IAppxFile com
Retrieves information about a payload or footprint file in a package.
IAppxFilesEnumerator com
Enumerates the payload files in a package.
IAppxManifestApplication com
Provides access to attribute values of the application.
IAppxManifestApplicationsEnumerator com
Enumerates the applications defined in the package manifest.
IAppxManifestOSPackageDependency com
IAppxManifestPackageDependenciesEnumerator com
Enumerates the package dependencies defined in the package manifest.
IAppxManifestPackageDependency com
Describes the dependency of one package on another package.
IAppxManifestPackageId com
Provides access to the package identity.
IAppxManifestProperties com
Provides read-only access to the properties section of a package manifest.
IAppxManifestReader com
Represents an object model of the package manifest that provides methods to access manifest elements and attributes.
IAppxManifestReader2 com
Represents an object model of the package manifest that provides methods to access manifest elements and attributes.
IAppxManifestReader3 com
Represents an object model of the package manifest that provides methods to access manifest elements and attributes.
IAppxManifestReader4 com
Represents an object model of the package manifest that provides methods to access manifest elements and attributes.
IAppxManifestReader5 com
Represents an object model of the package manifest that provides methods to access manifest elements and attributes.
IAppxManifestReader6 com
Represents an object model of the package manifest that provides methods to access manifest elements and attributes.
IAppxManifestReader7 com
Represents an object model of the package manifest that provides methods to access manifest elements and attributes.
IAppxPackageReader com
Provides a read-only object model for app packages.
IAudioCaptureClient com
The IAudioCaptureClient interface enables a client to read input data from a capture endpoint buffer. The client obtains a reference to the IAudioCaptureClient interface on a stream object by calling the IAudioClient::GetService method with parameter riid set to REFIID IID_IAudioCaptureClient.
IAudioClient com
The IAudioClient interface enables a client to create and initialize an audio stream between an audio application and the audio engine (for a shared-mode stream) or the hardware buffer of an audio endpoint device (for an exclusive-mode stream).
IAudioClient2 com
The IAudioClient2 interface is derived from the IAudioClient interface, with a set of additional methods that enable a Windows Audio Session API (WASAPI) audio client to do the following: opt in for offloading, query stream properties, and get information from the hardware that handles offloading.
IAudioClient3 com
The IAudioClient3 interface is derived from the IAudioClient2 interface, with a set of additional methods that enable a Windows Audio Session API (WASAPI) audio client to query for the audio engine's supported periodicities and current periodicity as well as request initialization of a shared audio stream with a specified periodicity.
IAudioClientDuckingControl com
Provides a method, SetDuckingOptionsForCurrentStream, that allows an app to specify that the system shouldn't duck the audio of other streams when the app's audio render stream is active.
IAudioClock com
The IAudioClock interface enables a client to monitor a stream's data rate and the current position in the stream. The client obtains a reference to the IAudioClock interface of a stream object by calling the IAudioClient::GetService method with parameter riid set to REFIID IID_IAudioClock.
IAudioClock2 com
The IAudioClock2 interface is used to get the current device position. The client obtains a reference to the IAudioClock interface of a stream object by calling the IAudioClient::GetService method with parameter riid set to REFIID IID_IAudioClock.
IAudioClockAdjustment com
The IAudioClockAdjustment interface is used to adjust the sample rate of a stream. The client obtains a reference to the IAudioClockAdjustment interface of a stream object by calling the IAudioClient::GetService method with parameter riid set to REFIID IID_IAudioClockAdjustment. Adjusting the sample rate is not supported for exclusive mode streams.
IAudioRenderClient com
The IAudioRenderClient interface enables a client to write output data to a rendering endpoint buffer. The client obtains a reference to the IAudioRenderClient interface of a stream object by calling the IAudioClient::GetService method with parameter riid set to REFIID IID_IAudioRenderClient.
IAudioSessionControl com
The IAudioSessionControl interface enables a client to configure the control parameters for an audio session and to monitor events in the session. The IAudioClient::Initialize method initializes a stream object and assigns the stream to an audio session. The client obtains a reference to the IAudioSessionControl interface on a stream object by calling the IAudioClient::GetService method with parameter riid set to REFIID IID_IAudioSessionControl.
IAudioSessionManager com
The IAudioSessionManager interface enables a client to access the session controls and volume controls for both cross-process and process-specific audio sessions. The client obtains a reference to an IAudioSessionManager interface by calling the IMMDevice::Activate method with parameter iid set to REFIID IID_IAudioSessionManager.
IAudioStreamVolume com
The IAudioStreamVolume interface enables a client to control and monitor the volume levels for all of the channels in an audio stream. The client obtains a reference to the IAudioStreamVolume interface on a stream object by calling the IAudioClient::GetService method with parameter riid set to REFIID IID_IAudioStreamVolume.
IBindCtx com
Provides access to a bind context, which is an object that stores information about a particular moniker binding operation.
IChannelAudioVolume com
The IChannelAudioVolume interface enables a client to control and monitor the volume levels for all of the channels in the audio session that the stream belongs to. This is the session that the client assigned the stream to during the call to the IAudioClient::Initialize method. The client obtains a reference to the IChannelAudioVolume interface on a stream object by calling the IAudioClient::GetService method with parameter riid set to REFIID IID_IChannelAudioVolume.
IClassFactory com
Creates a call object for processing calls to the methods of an asynchronous interface.
IConnectionPoint com
Supports connection points for connectable objects.
IConnectionPointContainer com
Supports connection points for connectable objects.
IDesktopWallpaper com
Provides methods for managing the desktop wallpaper.
IDispatch com
Exposes objects, methods and properties to programming tools and other applications that support Automation.
IEnumIDList com
Exposes a standard set of methods used to enumerate the pointers to item identifier lists (PIDLs) of the items in a Shell folder. When a folder's IShellFolder::EnumObjects method is called, it creates an enumeration object and passes a pointer to the object's IEnumIDList interface back to the calling application.
IEnumMoniker com
Enumerates the components of a moniker or the monikers in a table of monikers.
IEnumNetworkConnections com
The IEnumNetworkConnections interface provides a standard enumerator for network connections. It enumerates active, disconnected, or all network connections within a network. This interface can be obtained from the INetwork interface.
IEnumNetworks com
The IEnumNetworks interface is a standard enumerator for networks. It enumerates all networks available on the local machine. This interface can be obtained from the INetworkListManager interface.
IEnumResources com
Exposes resource enumeration methods.
IEnumSpellingError com
An enumeration of the spelling errors.
IEnumString com
Enumerate strings. LPWSTR is the type that indicates a pointer to a zero-terminated string of wide, or Unicode, characters.
IEnumVARIANT com
Provides a method for enumerating a collection of variants, including heterogeneous collections of objects and intrinsic types. Callers of this interface do not need to know the specific type (or types) of the elements in the collection.
IEnumWbemClassObject com
The IEnumWbemClassObject interface is used to enumerate Common Information Model (CIM) objects and is similar to a standard COM enumerator.
IErrorInfo com
IErrorInfo is defined by Automation; the following describes how the interface is used in OLE DB. IErrorInfo returns information about an error in addition to the return code. It returns the error message, name of the component and GUID of the interface in which the error occurred, and the name and topic of the Help file that applies to the error.
IFileDialog com
Exposes methods that initialize, show, and get results from the common file dialog.
IFileDialog2 com
Extends the IFileDialog interface by providing methods that allow the caller to name a specific, restricted location that can be browsed in the common file dialog as well as to specify alternate text to display as a label on the Cancel button.
IFileDialogCustomize com
Exposes methods that allow an application to add controls to a common file dialog.
IFileIsInUse com
Exposes methods that can be called to get information on or close a file that is in use by another application. When an application attempts to access a file and finds that file already in use, it can use the methods of this interface to gather information to present to the user in a dialog box.
IFileOpenDialog com
Extends the IFileDialog interface by adding methods specific to the open dialog.
IFileSaveDialog com
Extends the IFileDialog interface by adding methods specific to the save dialog, which include those that provide support for the collection of metadata to be persisted with the file.
IInitializeWithWindow com
Exposes a method through which a client can provide an owner window to a Windows Runtime (WinRT) object used in a desktop application.
IInspectable com
Provides functionality required for all Windows Runtime classes.
IKnownFolder com
Exposes methods that allow an application to retrieve information about a known folder's category, type, GUID, pointer to an item identifier list (PIDL) value, redirection capabilities, and definition. It provides a method for the retrieval of a known folder's IShellItem object. It also provides methods to get or set the path of the known folder.
IKnownFolderManager com
Exposes methods that create, enumerate or manage existing known folders.
IMetaDataAssemblyImport com
Provides methods to access and examine the contents of an assembly manifest.
IMetaDataDispenser com
Provides methods to create a new metadata scope, or open an existing one.
IMetaDataDispenserEx com
Extends the IMetaDataDispenser Interface interface to provide the capability to control how the metadata APIs operate on the current metadata scope.
IMetaDataImport com
Provides methods for importing and manipulating existing metadata from a portable executable (PE) file or other source, such as a type library or a stand-alone, run-time metadata binary.
IMetaDataImport2 com
Extends the IMetaDataImport interface to provide the capability of working with generic types.
IMetaDataTables com
Provides methods for the storage and retrieval of metadata information in tables.
IMetaDataTables2 com
Extends IMetaDataTables to include methods for working with metadata streams.
IMMDevice com
The IMMDevice interface encapsulates the generic features of a multimedia device resource.
IMMDeviceCollection com
The IMMDeviceCollection interface represents a collection of multimedia device resources.
IMMDeviceEnumerator com
The IMMDeviceEnumerator interface provides methods for enumerating multimedia device resources.
IMMEndpoint com
The IMMEndpoint interface represents an audio endpoint device.
IMMNotificationClient com
The IMMNotificationClient interface provides notifications when an audio endpoint device is added or removed, when the state or properties of an endpoint device change, or when there is a change in the default role assigned to an endpoint device.
IModalWindow com
Exposes a method that represents a modal window.
IMoniker com
Enables you to use a moniker object, which contains information that uniquely identifies a COM object. An object that has a pointer to the moniker object's IMoniker interface can locate, activate, and get access to the identified object without having any other specific information on where the object is actually located in a distributed system. Monikers are used as the basis for linking in COM. A linked object contains a moniker that identifies its source. When the user activates the linked object to edit it, the moniker is bound; this loads the link source into memory.
INetwork com
The INetwork interface represents a network on the local machine. It can also represent a collection of network connections with a similar network signature.
INetworkConnection com
The INetworkConnection interface represents a single network connection.
INetworkListManager com
The INetworkListManager interface provides a set of methods to perform network list management functions.
INetworkListManagerEvents com
INetworkListManagerEvents is a message sink interface that a client implements to get overall machine state related events. Applications that are interested on higher-level events, for example internet connectivity, implement this interface.
IPersist com
Provides the CLSID of an object that can be stored persistently in the system. Allows the object to specify which object handler to use in the client process, as it is used in the default implementation of marshaling.
IPersistFile com
Enables an object to be loaded from or saved to a disk file, rather than a storage object or stream. Because the information needed to open a file varies greatly from one application to another, the implementation of IPersistFile::Loadon the object must also open its disk file.
IPersistMemory com
Saves and loads objects from a stream.
IPersistStream com
Enables the saving and loading of objects that use a simple serial stream for their storage needs.
IPropertyStore com
This interface exposes methods used to enumerate and manipulate property values.
IProvideClassInfo com
Provides access to the type information for an object's coclass entry in its type library.
IRestrictedErrorInfo com
Represents the details of an error, including restricted error information.
IRunningObjectTable com
Manages access to the running object table (ROT), a globally accessible look-up table on each workstation. A workstation's ROT keeps track of those objects that can be identified by a moniker and that are currently running on the workstation. When a client tries to bind a moniker to an object, the moniker checks the ROT to see if the object is already running; this allows the moniker to bind to the current instance instead of loading a new one.
ISensor com
Represents a sensor.
ISensorCollection com
Represents a collection of sensors, such as all the sensors connected to a computer.
ISensorDataReport com
Represents a sensor data report. Sensor data reports contain data field values generated by a sensor and a time stamp that indicates when the data report was created.
ISensorManager com
Provides methods for discovering and retrieving available sensors and a method to request sensor manager events.
ISequentialStream com
The ISequentialStream interface supports simplified sequential access to stream objects. The IStream interface inherits its Read and Write methods from ISequentialStream.
IShellFolder com
Exposed by all Shell namespace folder objects, its methods are used to manage folders.
IShellItem com
Exposes methods that retrieve information about a Shell item. IShellItem and IShellItem2 are the preferred representations of items in any new code.
IShellItem2 com
Extends IShellItem with methods that retrieve various property values of the item. IShellItem and IShellItem2 are the preferred representations of items in any new code.
IShellItemArray com
Exposes methods that create and manipulate Shell item arrays.
IShellItemFilter com
Exposed by a client to specify how to filter the enumeration of a Shell item by a server application.
IShellItemImageFactory com
Exposes a method to return either icons or thumbnails for Shell items. If no thumbnail or icon is available for the requested item, a per-class icon may be provided from the Shell.
IShellItemResources com
Exposes methods to manipulate and query Shell item resources.
Exposes methods that create, modify, and resolve Shell links.
IShellLinkDataList com
Exposes methods that allow an application to attach extra data blocks to a Shell link. These methods add, copy, or remove data blocks.
IShellLinkDual com
IShellService com
IShellService Exposes one method that declares ownership when a service component implementing a certain interface is shared among multiple clients, such as Windows Internet Explorer and Windows Explorer.
ISimpleAudioVolume com
The ISimpleAudioVolume interface enables a client to control the master volume level of an audio session. The IAudioClient::Initialize method initializes a stream object and assigns the stream to an audio session. The client obtains a reference to the ISimpleAudioVolume interface on a stream object by calling the IAudioClient::GetService method with parameter riid set to REFIID IID_ISimpleAudioVolume.
ISpeechAudioFormat com
ISpeechBaseStream com
The ISpeechBaseStream automation interface defines properties and methods for manipulating data streams.
ISpeechObjectToken com
ISpeechObjectTokens com
The ISpeechObjectTokens automation interface represents a collection of SpObjectToken objects.
ISpeechVoice com
ISpeechVoiceStatus com
The ISpeechVoiceStatus automation interface defines the types of information returned by the SpVoice.Status method.
ISpeechWaveFormatEx com
ISpellChecker com
Represents a particular spell checker for a particular language. The ISpellChecker can be used to check text, get suggestions, update user dictionaries, and maintain options.
ISpellChecker2 com
Represents a particular spell checker for a particular language, with the added ability to remove words from the added words dictionary, or from the ignore list. The ISpellChecker2 can also be used to check text, get suggestions, update user dictionaries, and maintain options, as can ISpellChecker from which it is derived.
ISpellCheckerChangedEventHandler com
Allows the caller to create a handler for notifications that the state of the speller has changed.
ISpellCheckerFactory com
A factory for instantiating a spell checker ISpellChecker as well as providing functionality for determining which languages are supported.
ISpellingError com
Provides information about a spelling error.
ISpEventSource com
Using the methods on ISpNotifySource an application can specify the mechanism by which it receives notifications. Applications can configure which events should trigger notifications and which events retrieve queued events. ISpEventSource inherits from the ISpNotifySource interface.
ISpNotifySource com
In both speech synthesis and speech recognition, applications receive notifications when words have been spoken or when phrases have been recognized. SAPI components that generate notifications implement an ISpNotifySource.
ISpVoice com
The ISpVoice interface enables an application to perform speech synthesis operations. Applications can speak text strings and text files, or play audio files through this interface. All of these can be done synchronously or asynchronously.
IStream com
The IStream interface lets you read and write data to stream objects. Stream objects contain the data in a structured storage object, where storages provide the structure. Simple data can be written directly to a stream but, most frequently, streams are elements nested within a storage object. They are similar to standard files.
ISupportErrorInfo com
Ensures that error information can be propagated up the call chain correctly. Automation objects that use the error handling interfaces must implement ISupportErrorInfo.
ITypeInfo com
This section describes ITypeInfo, an interface typically used for reading information about objects. For example, an object browser tool can use ITypeInfo to extract information about the characteristics and capabilities of objects from type libraries.
IUIAutomation com
Exposes methods that enable Microsoft UI Automation client applications to discover, access, and filter UI Automation elements.
IUIAutomation2 com
Extends the IUIAutomation interface to expose additional methods for controlling Microsoft UI Automation functionality.
IUIAutomation3 com
Extends the IUIAutomation2 interface to expose additional methods for controlling Microsoft UI Automation functionality.
IUIAutomation4 com
Extends the IUIAutomation3 interface to expose additional methods for controlling Microsoft UI Automation functionality.
IUIAutomation5 com
Extends the IUIAutomation4 interface to expose additional methods for controlling Microsoft UI Automation functionality.
IUIAutomation6 com
Extends the IUIAutomation5 interface to expose additional methods for controlling Microsoft UI Automation functionality.
IUIAutomationAndCondition com
Exposes properties and methods that Microsoft UI Automation client applications can use to retrieve information about an AND-based property condition.
IUIAutomationAnnotationPattern com
Provides access to the properties of an annotation in a document.
IUIAutomationBoolCondition com
Represents a condition that can be either TRUE (selects all elements) or FALSE (selects no elements).
IUIAutomationCacheRequest com
Exposes properties and methods of a cache request. Client applications use this interface to specify the properties and control patterns to be cached when a Microsoft UI Automation element is obtained.
IUIAutomationCondition com
This is the primary interface for conditions used in filtering when searching for elements in the UI Automation tree.
IUIAutomationCustomNavigationPattern com
Exposes a method to support access by a Microsoft UI Automation client to controls that support a custom navigation order.
IUIAutomationDockPattern com
Provides access to a control that enables child elements to be arranged horizontally and vertically, relative to each other.
IUIAutomationDragPattern com
Provides access to information exposed by a UI Automation provider for an element that can be dragged as part of a drag-and-drop operation.
IUIAutomationDropTargetPattern com
Provides access to drag-and-drop information exposed by a Microsoft UI Automation provider for an element that can be the drop target of a drag-and-drop operation.
IUIAutomationElement com
Exposes methods and properties for a UI Automation element, which represents a UI item.
IUIAutomationElement2 com
Extends the IUIAutomationElement interface.
IUIAutomationElement3 com
Extends the IUIAutomationElement2 interface.
IUIAutomationElement4 com
Extends the IUIAutomationElement3 interface.
IUIAutomationElement5 com
Extends the IUIAutomationElement4 interface to provide access to current and cached landmark data.
IUIAutomationElement6 com
Extends the IUIAutomationElement5 interface to provide access to current and cached full descriptions.
IUIAutomationElement7 com
Extends the IUIAutomationElement6 interface.
IUIAutomationElement8 com
Extends the IUIAutomationElement7 interface.
IUIAutomationElement9 com
Extends the IUIAutomationElement8 interface.
IUIAutomationElementArray com
Represents a collection of UI Automation elements.
IUIAutomationExpandCollapsePattern com
Provides access to a control that can visually expand to display content, and collapse to hide content.
IUIAutomationGridItemPattern com
Provides access to a child control in a grid-style container that supports the IUIAutomationGridPattern interface.
IUIAutomationGridPattern com
Provides access to a control that acts as a container for a collection of child controls that are organized in a two-dimensional logical coordinate system that can be traversed by row and column.
IUIAutomationInvokePattern com
Exposes a method that enables a client application to invoke the action of a control (typically a button).
IUIAutomationItemContainerPattern com
Exposes a method that retrieves an item from a container, such as a virtual list.
IUIAutomationLegacyIAccessiblePattern com
Exposes methods and properties that enable Microsoft UI Automation clients to retrieve UI information from Microsoft Active Accessibility (MSAA) servers.
IUIAutomationMultipleViewPattern com
Provides access to a control that can switch between multiple representations of the same information or set of child controls.
IUIAutomationNotCondition com
Represents a condition that is the negative of another condition.
IUIAutomationObjectModelPattern com
Provides access to the underlying object model implemented by a control or application.
IUIAutomationOrCondition com
Represents a condition made up of multiple conditions, at least one of which must be true.
IUIAutomationPropertyCondition com
Represents a condition based on a property value that is used to find UI Automation elements.
IUIAutomationProxyFactory com
Exposes properties and methods of an object that creates a Microsoft UI Automation provider for UI elements that do not have native support for UI Automation. This interface is implemented by proxies.
IUIAutomationProxyFactoryEntry com
Represents a proxy factory in the table maintained by Microsoft UI Automation, and exposes properties and methods that can be used by client applications to interact with IUIAutomationProxyFactory objects.
IUIAutomationProxyFactoryMapping com
Exposes properties and methods for a table of proxy factories. Each table entry is represented by an IUIAutomationProxyFactoryEntry interface. The entries are in the order in which the system will attempt to use the proxies.
IUIAutomationRangeValuePattern com
Provides access to a control that presents a range of values.
IUIAutomationScrollItemPattern com
Exposes a method that enables an item in a scrollable view to be placed in a visible portion of the view.
IUIAutomationScrollPattern com
Provides access to a control that acts as a scrollable container for a collection of child elements.
IUIAutomationSelectionItemPattern com
Provides access to the selectable child items of a container control that supports IUIAutomationSelectionPattern.
IUIAutomationSelectionPattern com
Provides access to a control that contains selectable child items. The children of this element support IUIAutomationSelectionItemPattern.
IUIAutomationSelectionPattern2 com
Extends the IUIAutomationSelectionPattern interface to provide information about selected items.
IUIAutomationSpreadsheetItemPattern com
Enables a client application to retrieve information about an item (cell) in a spreadsheet.
IUIAutomationSpreadsheetPattern com
Enables a client application to access the items (cells) in a spreadsheet.
IUIAutomationStylesPattern com
Enables Microsoft UI Automation clients to retrieve the visual styles associated with an element in a document.
IUIAutomationSynchronizedInputPattern com
Provides access to the keyboard or mouse input of a control.
IUIAutomationTableItemPattern com
Provides access to a child element in a container that supports IUIAutomationTablePattern.
IUIAutomationTablePattern com
Provides access to a control that acts as a container for a collection of child elements.
IUIAutomationTextChildPattern com
Provides access a text-based control (or an object embedded in text) that is a child or descendant of another text-based control.
IUIAutomationTextEditPattern com
Provides access to a control that modifies text, for example a control that performs auto-correction or enables input composition through an Input Method Editor (IME).
IUIAutomationTextPattern com
Provides access to a control that contains text.
IUIAutomationTextPattern2 com
Extends the IUIAutomationTextPattern interface.
IUIAutomationTextRange com
Provides access to a span of continuous text in a container that supports the IUIAutomationTextPattern interface. Client applications can use the IUIAutomationTextRange interface to select, compare, and retrieve embedded objects from the text span.
IUIAutomationTextRange2 com
Extends the IUIAutomationTextRange interface to enable Microsoft UI Automation clients to programmatically invoke context menus.
IUIAutomationTextRange3 com
Extends the IUIAutomationTextRange2 interface to support faster access to the underlying rich text data on a text range.
IUIAutomationTextRangeArray com
Represents a collection of IUIAutomationTextRange objects.
IUIAutomationTogglePattern com
Provides access to a control that can cycle through a set of states, and maintain a state after it is set.
IUIAutomationTransformPattern com
Provides access to a control that can be moved, resized, or rotated.
IUIAutomationTransformPattern2 com
Extends the IUIAutomationTransformPattern interface to enable Microsoft UI Automation clients to programmatically access the viewport zooming functionality of a control.
IUIAutomationTreeWalker com
Exposes properties and methods that UI Automation client applications use to view and navigate the UI Automation elements on the desktop.
IUIAutomationValuePattern com
Provides access to a control that contains a value that does not span a range and that can be represented as a string.
IUIAutomationVirtualizedItemPattern com
Represents a virtualized item, which is an item that is represented by a placeholder automation element in the Microsoft UI Automation tree.
IUIAutomationWindowPattern com
Provides access to the fundamental functionality of a window.
IUnknown com
Enables clients to get pointers to other interfaces on a given object through the QueryInterface method, and manage the existence of the object through the AddRef and Release methods. All other COM interfaces are inherited, directly or indirectly, from IUnknown. Therefore, the three methods in IUnknown are the first entries in the vtable for every interface.
IUri com
Exposes methods and properties used to parse and build Uniform Resource Identifiers (URIs).
IVirtualDesktopManager com
Exposes methods that enable an application to interact with groups of windows that form virtual workspaces.
IWbemClassObject com
The IWbemClassObject interface contains and manipulates both class definitions and class object instances.
IWbemConfigureRefresher com
The IWbemConfigureRefresher interface is used by client code to add enumerators, objects, and nested refreshers into a refresher.
IWbemContext com
The IWbemContext interface is optionally used to communicate additional context information to providers when submitting IWbemServices calls to WMI. All primary calls in IWbemServices take an optional parameter pointing to an object of this type.
IWbemHiPerfEnum com
The IWbemHiPerfEnum interface is used in refresher operations to provide rapid access to enumerations of instance objects. WMI provides an implementation of this interface, which it passes to providers when IWbemHiPerfProvider::CreateRefreshableEnum is called, and it returns to clients when IWbemConfigureRefresher::AddEnum is called.
IWbemLocator com
Use the IWbemLocator interface to obtain the initial namespace pointer to the IWbemServices interface for WMI on a specific host computer. You can access Windows Management itself using the IWbemServices pointer, which is returned by the IWbemLocator::ConnectServer method.
IWbemObjectAccess com
The IWbemObjectAccess interface provides access to the methods and properties of an object. An IWbemObjectAccess object is a container for an instance updated by a refresher. With the IWbemObjectAccess interface, you can get and set properties by using property handles instead of object property names.
IWbemRefresher com
The IWbemRefresher interface provides an entry point through which refreshable objects such as enumerators or refresher objects, can be refreshed. Implementers of IWbemHiPerfProvider must provide an implementation of this interface.
IWbemServices com
The IWbemServices interface is used by clients and providers to access WMI services. The interface is implemented by WMI and WMI providers, and is the primary WMI interface.
IWebAuthenticationCoreManagerInterop com
Provides Win32 apps with access to certain functions of WebAuthenticationCoreManager that are otherwise available only to UWP apps.
IWinHttpRequest com
The IWinHttpRequest interface provides all of the nonevent methods for Microsoft Windows HTTP Services (WinHTTP).
KnownFolderManager com
MMDeviceEnumerator com
NetworkListManager com
Sensor com
SensorCollection com
SensorDataReport com
SensorManager com
ShellItem com
SpellCheckerFactory com
SpVoice com
VirtualDesktopManager com
WbemClassObject com
WbemContext com
WbemLocator com
WbemRefresher com
WinHttpRequest com

Functions

convertToCLSID(String strCLSID, {Allocator allocator = calloc}) Pointer<GUID> com
Converts a Dart string into an CLSID using the CLSIDFromString call.
convertToIID(String strIID, {Allocator allocator = calloc}) Pointer<GUID> com
Converts a Dart string into an IID using the IIDFromString call.