The following functions are provided by COM.

Function Description
BindMoniker Locates an object by means of its moniker, activates the object if it is inactive, and retrieves a pointer to the specified interface on that object.
CLSIDFromProgID Looks up a CLSID in the registry, given a ProgID.
CLSIDFromProgIDEx Triggers automatic installation if the COMClassStore policy is enabled.
CLSIDFromString Converts a string generated by the StringFromCLSID function back into the original CLSID.
CoAddRefServerProcess Increments a global per-process reference count.
CoAllowSetForegroundWindow Enables the COM server process called to take focus away from the client application by using the IForegroundTransfer interface.
CoAllowUnmarshalerCLSID Adds an unmarshaler CLSID to the allowed list for the calling process only.
CoCancelCall Requests cancellation of an outbound DCOM method call pending on a specified thread.
CoCopyProxy Makes a private copy of the specified proxy.
CoCreateFreeThreadedMarshaler Creates an aggregatable object capable of context-dependent marshaling.
CoCreateGuid Creates a GUID, a unique 128-bit integer used for CLSIDs and interface identifiers.
CoCreateInstance Creates a single uninitialized object of the class associated with a specified CLSID.
CoCreateInstanceEx Creates an instance of a specific class on a specific computer.
CoCreateInstanceFromApp Creates an instance of a specific class on a specific computer from within an app container.
CoDisableCallCancellation Undoes the action of a call to CoEnableCallCancellation.
CoDisconnectContext Disconnects all proxy connections that are being maintained on behalf of all interface pointers that point to objects in the current context.
CoDisconnectObject Disconnects all remote process connections being maintained on behalf of all the interface pointers that point to a specified object.
CoDosDateTimeToFileTime Converts the MS-DOS representation of the time and date to a FILETIME structure used by Windows.
CoEnableCallCancellation Enables cancellation of synchronous calls on the calling thread.
CoFileTimeNow Returns the current time as a FILETIME structure.
CoFileTimeToDosDateTime Converts a FILETIME into MS-DOS date and time values.
CoFreeAllLibraries Frees all the DLLs that have been loaded with the CoLoadLibrary function (called internally by CoGetClassObject), regardless of whether they are currently in use.
CoFreeLibrary Frees a library that, when loaded, was specified to be freed explicitly.
CoFreeUnusedLibraries Unloads any DLLs that are no longer in use.
CoFreeUnusedLibrariesEx Unloads any DLLs that are no longer in use and whose unload delay has expired.
CoGetApartmentType Queries the current apartment type and type qualifier.
CoGetCallContext Retrieves the context of the current call on the current thread.
CoGetCallerTID Returns a pointer to a DWORD that contains the apartment ID of the caller's thread.
CoGetCancelObject Obtains a pointer to a call control interface, normally ICancelMethodCalls, on the cancel object corresponding to an outbound COM method call pending on the same or another client thread.
CoGetClassObject Provides a pointer to an interface on a class object associated with a specified CLSID.
CoGetContextToken Returns a pointer to an implementation of IObjContext for the current context.
CoGetCurrentLogicalThreadId Returns the logical thread id of the current physical thread.
CoGetCurrentProcess Returns a value that is unique to the current thread. CoGetCurrentProcess can be used to avoid thread ID reuse problems.
CoGetInstanceFromFile Creates a new object and initializes it from a file using IPersistFile::Load.
CoGetInstanceFromIStorage Creates a new object and initializes it from a storage object through an internal call to IPersistFile::Load.
CoGetInterceptor Instantiates the appropriate interceptor for the indicated interface to be intercepted and returns the newly created interceptor.
CoGetInterfaceAndReleaseStream Unmarshals a buffer containing an interface pointer and releases the stream when an interface pointer has been marshaled from another thread to the calling thread.
CoGetMalloc Retrieves a pointer to the default OLE task memory allocator (which supports the system implementation of the IMalloc interface) so applications can call its methods to manage memory.
CoGetMarshalSizeMax Returns an upper bound on the number of bytes needed to marshal the specified interface pointer to the specified object.
CoGetObject Converts a display name into a moniker that identifies the object named, and then binds to the object identified by the moniker.
CoGetObjectContext Returns the context for the current object.
CoGetPSClsid Returns the CLSID of the DLL that implements the proxy and stub for the specified interface.
CoGetStandardMarshal Creates a default, or standard, marshaling object in either the client process or the server process, depending on the caller, and returns a pointer to that object's IMarshal implementation.
CoGetStdMarshalEx Creates an aggregated standard marshaler for use with lightweight client-side handlers.
CoGetSystemSecurityPermissions Returns the default values of the Security Descriptors of the machine-wide launch and access permissions, as well as launch and access limits.
CoGetTreatAsClass Returns the CLSID of an object that can emulate the specified object.
CoHandlePriorityEventsFromMessagePump Provides an opportunity for short-running infrastructural COM calls and other high-priority or short-running COM work to be dispatched between messages.
CoImpersonateClient Enables the server to impersonate the client of the current call for the duration of the call.
CoInitialize Initializes the COM library on the current thread and identifies the concurrency model as single-thread apartment (STA).
CoInitializeEx Initializes the COM library for use by the calling thread, sets the thread's concurrency model, and creates a new apartment for the thread if one is required.
CoInitializeSecurity Registers security and sets the default security values for the process.
CoInstall Installs the requested COM server application.
CoInvalidateRemoteMachineBindings Tells the service control manager to flush any cached RPC binding handles for the specified computer.
CoIsHandlerConnected Determines whether a remote object is connected to the corresponding in-process object.
CoIsOle1Class Determines whether the specified CLSID represents an OLE 1 object.
CoLoadLibrary Loads a specific DLL into the caller's process.
CoLockObjectExternal Called either to lock an object to ensure that it stays in memory, or to release such a lock.
CoMarshalHresult Marshals an HRESULT to the specified stream, from which it can be unmarshaled using the CoUnmarshalHresult function.
CoMarshalInterface Writes into a stream the data required to initialize a proxy object in some client process.
CoMarshalInterThreadInterfaceInStream Marshals an interface pointer from one thread to another thread in the same process.
CoQueryAuthenticationServices Retrieves a list of the authentication services registered when the process called CoInitializeSecurity.
CoQueryClientBlanket Called by the server to find out about the client that invoked the method executing on the current thread.
CoRegisterActivationFilter Registers a process-wide filter to process activation requests.
CoRegisterChannelHook Registers a channel hook.
CoQueryProxyBlanket Retrieves the authentication information the client uses to make calls on the specified proxy.
CoRegisterClassObject Registers an EXE class object with OLE so other applications can connect to it.
CoRegisterInitializeSpy Registers an implementation of the IInitializeSpy interface. The IInitializeSpy interface is defied to allow developers to perform initialization and cleanup on COM apartments.
CoRegisterMallocSpy Registers an implementation of the IMallocSpy interface, thereafter requiring OLE to call its wrapper methods around every call to the corresponding IMalloc method.
CoRegisterMessageFilter Registers with OLE the instance of an IMessageFilter interface, which is to be used for handling concurrency issues on the current thread.
CoRegisterPSClsid Enables a downloaded DLL to register its custom interfaces within its running process so that the marshaling code will be able to marshal those interfaces.
CoRegisterSurrogate Registers the surrogate process through its ISurrogate interface pointer.
CoReleaseMarshalData Destroys a previously marshaled data packet.
CoReleaseServerProcess Decrements the global per-process reference count.
CoResumeClassObjects Called by a server that can register multiple class objects to inform the SCM about all registered classes, and permits activation requests for those class objects.
CoRevertToSelf Restores the authentication information on a thread of execution.
CoRevokeClassObject Informs OLE that a class object, previously registered with the CoRegisterClassObject function, is no longer available for use.
CoRevokeInitializeSpy Revokes a registered implementation of the IInitializeSpy interface.
CoRevokeMallocSpy Revokes a registered IMallocSpy object.
CoSetCancelObject Sets (registers) or resets (unregisters) a cancel object for use during subsequent cancel operations on the current thread.
CoSetMessageDispatcher Registers or unregisters the per-thread message dispatcher that is to be invoked when there are window messages available to dispatch within COM wait APIs on an ASTA thread.
CoSetProxyBlanket Sets the authentication information that will be used to make calls on the specified proxy.
CoSuspendClassObjects Prevents any new activation requests from the SCM on all class objects registered within the process.
CoSwitchCallContext Switches the call context object used by CoGetCallContext.
CoTaskMemAlloc Allocates a block of task memory in the same way that IMalloc::Alloc does.
CoTaskMemFree Frees a block of task memory previously allocated through a call to the CoTaskMemAlloc or CoTaskMemRealloc function.
CoTaskMemRealloc Changes the size of a previously allocated block of task memory.
CoTestCancel Determines whether the call being executed on the server has been canceled by the client.
CoTreatAsClass Establishes or removes an emulation, in which objects of one class are treated as objects of a different class.
CoUninitialize Closes the COM library on the current thread, unloads all DLLs loaded by the thread, frees any other resources that the thread maintains, and forces all RPC connections on the thread to close.
CoUnmarshalHresult Unmarshals an HRESULT type from the specified stream.
CoUnmarshalInterface Initializes a newly created proxy using data written into the stream by a previous call to the CoMarshalInterface function, and returns an interface pointer to that proxy.
CoWaitForMultipleHandles Waits for specified handles to be signaled or for a specified timeout period to elapse.
CoWaitForMultipleObjects A replacement for CoWaitForMultipleHandles primarily intended for use by Windows Store apps and components. This replacement API hides the options for CoWaitForMultipleHandles that are not supported in ASTA.
CreateAntiMoniker Creates and returns a new anti-moniker.
CreateAsyncBindCtx Creates an asynchronous bind context for use with asynchronous monikers.
CreateBindCtx Returns a pointer to an implementation of IBindCtx (a bind context object). This object stores information about a particular moniker-binding operation.
CreateClassMoniker Creates a class moniker that refers to the specified class.
CreateFileMoniker Creates a file moniker based on the specified path.
CreateGenericComposite Performs a generic composition of two monikers and supplies a pointer to the resulting composite moniker.
CreateItemMoniker Creates an item moniker that identifies an object within a containing object (typically a compound document).
CreateObjrefMoniker Creates an OBJREF moniker based on a pointer to an object.
CreatePointerMoniker Creates a pointer moniker based on a pointer to an object.
DllCanUnloadNow Determines whether the DLL that implements this function is in use. If not, the caller can unload the DLL from memory.
DllDebugObjectRPCHook Exported by DLLs to enable remote debugging.
DllGetClassObject Retrieves the class object from a DLL object handler or object application.
DllRegisterServer Instructs an in-process server to create its registry entries for all classes supported in this server module.
DllUnregisterServer Instructs an in-process server to remove only those entries created through DllRegisterServer.
GetClassFile Returns the CLSID associated with the specified filename.
GetRunningObjectTable Returns a pointer to the IRunningObjectTable interface on the local running object table (ROT).
IIDFromString Converts a string generated by the StringFromIID function back into the original interface identifier (IID).
Initialize Initializes a thread to use Windows Runtime APIs.
IsAccelerator Determines whether the specified keystroke maps to an accelerator in the specified accelerator table.
IsEqualCLSID Determines whether two CLSIDs are equal.
IsEqualGUID Determines whether two GUIDs are equal.
IsEqualIID Determines whether two interface identifiers are equal.
MkParseDisplayName Converts a string into a moniker that identifies the object named by the string.
MonikerCommonPrefixWith Creates a new moniker based on the common prefix that this moniker (the one comprising the data of this moniker object) shares with another moniker.
MonikerRelativePathTo Provides a moniker that, when composed onto the end of the first specified moniker (or one with a similar structure), yields the second specified moniker.
OleDoAutoConvert Automatically converts an object to a new class if automatic conversion for that object class is set in the registry.
OleGetAutoConvert Determines whether the registry is set for objects of a specified CLSID to be automatically converted to another CLSID, and if so, retrieves the new CLSID.
OleGetIconOfClass Returns a handle to a metafile containing an icon and a string label for the specified CLSID.
OleGetIconOfFile Returns a handle to a metafile containing an icon and string label for the specified file name.
OleIconToCursor Converts an icon to a cursor.
OleRegGetMiscStatus Returns miscellaneous information about the presentation and behaviors supported by the specified CLSID from the registry.
OleRegGetUserType Gets the user type of the specified class from the registry.
OleSetAutoConvert Specifies a CLSID for automatic conversion to a different class when an object of that class is loaded.
ProgIDFromCLSID Retrieves the ProgID for a given CLSID.
StringFromCLSID Converts a CLSID into a string of printable characters. Different CLSIDs always convert to different strings.
StringFromGUID2 Converts a globally unique identifier (GUID) into a string of printable characters.
StringFromIID Converts an interface identifier into a string of printable characters.