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
examples\
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 theIAudioClient::GetService
method with parameterriid
set to REFIIDIID_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 theIAudioClient::GetService
method with parameterriid
set to REFIIDIID_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 theIAudioClient::GetService
method with parameterriid
set to REFIIDIID_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 theIAudioClient::GetService
method with parameterriid
set to REFIIDIID_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 theIAudioClient::GetService
method with parameterriid
set to REFIIDIID_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 theIAudioClient::GetService
method with parameter riid set to REFIIDIID_IAudioSessionControl
. - IAudioSessionControl2 com
- The IAudioSessionControl2 interface can be used by a client to get information about the audio session.
- IAudioSessionEnumerator com
- The IAudioSessionEnumerator interface enumerates audio sessions on an audio device. To get a reference to the IAudioSessionEnumerator interface of the session enumerator object, the application must call IAudioSessionManager2::GetSessionEnumerator.
- 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 parameteriid
set to REFIIDIID_IAudioSessionManager
. - IAudioSessionManager2 com
- The IAudioSessionManager2 interface enables an application to manage submixes for the audio device.
- 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 REFIIDIID_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 theIAudioClient::GetService
method with parameterriid
set to REFIIDIID_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::Load
on 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.
- IShellLink com
- 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 theIAudioClient::GetService
method with parameterriid
set to REFIIDIID_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.
- 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 inIWbemServices
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 whenIWbemConfigureRefresher::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 theIWbemServices
pointer, which is returned by theIWbemLocator::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
- ShellLink 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< comGUID> - Converts a Dart string into an CLSID using the CLSIDFromString call.
-
convertToIID(
String strIID, {Allocator allocator = calloc}) → Pointer< comGUID> - Converts a Dart string into an IID using the IIDFromString call.