Initialize an XPS OM
Describes how to initialize an XPS OM, which allows a program to create an XPS document.
The interfaces of the XPS Document API are created by an IXpsOMObjectFactory interface. To obtain a pointer to an IXpsOMObjectFactory that can be used in your program, call CoCreateInstance.
Before using the following code examples in your program, read the disclaimer in Common XPS Document Programming Tasks.
Code Example
The following example creates the object factory that will be used to create XPS OM interfaces in other examples.
IXpsOMObjectFactory *xpsFactory;
HRESULT hr = S_OK;
// Init COM for this thread if it hasn't
// been initialized, yet.
hr = CoInitializeEx(0, COINIT_MULTITHREADED);
hr = CoCreateInstance(
__uuidof(XpsOMObjectFactory),
NULL,
CLSCTX_INPROC_SERVER,
__uuidof(IXpsOMObjectFactory),
reinterpret_cast<LPVOID*>(&xpsFactory));
if (SUCCEEDED(hr))
{
// Make sure that you got a pointer
// to the interface.
// Use object factory...
// ... and release when done
xpsFactory->Release();
}
// Uninitialize COM when finished
CoUninitialize();
Best Practices
You can make your program more efficient by obtaining a pointer to an IXpsOMObjectFactory interface the first time that you need to call IXpsOMObjectFactory to create an interface, and then saving the pointer for use in other areas of the program. When the program no longer needs the object factory, or will not need it for a while, the pointer can be released.
Related topics
Next Steps
Used in This Section
For More Information