Инициализация диспетчера подписей
В этом разделе описывается, как инициализировать диспетчер подписей для использования с документом XPS.
Прежде чем использовать приведенные ниже примеры кода в программе, прочтите заявление об отказе в задачах программирования Common Digital Signature.
Чтобы использовать функции API шифрования Windows 7, определите символ CRYPT_OID_INFO_HAS_EXTRA_FIELDS следующим образом:
#define CRYPT_OID_INFO_HAS_EXTRA_FIELDS
Затем создайте экземпляр интерфейса IXpsSignatureManager, вызвав CoCreateInstance, как показано в следующем примере кода.
IXpsSignatureManager *newInterface;
// Note the implicit requirement that CoInitializeEx
// has previously been called from this thread.
hr = CoCreateInstance(
__uuidof(XpsSignatureManager),
NULL,
CLSCTX_INPROC_SERVER,
__uuidof(IXpsSignatureManager),
reinterpret_cast<LPVOID*>(&newInterface));
// make sure that you got a pointer
// to the interface
if (SUCCEEDED(hr)) {
// Load document into signature manager from file.
// xpsDocument is initialized with the file name
// of the document to load outside of this example.
hr = newInterface->LoadPackageFile (xpsDocument);
// Use newInterface
// Release interface pointers when finished with them
newInterface->Release();
}
Интерфейс, созданный CoCreateInstance, можно использовать только одним документом XPS, который необходимо загрузить путем вызова LoadPackageFile или LoadPackageStream перед вызовом любого другого метода.
После создания экземпляра интерфейса IXpsSignatureManager и загрузки документа XPS диспетчер подписей готов к использованию.
См. также
-
Дальнейшие действия
-
Используется в этом разделе
-
Дополнительные сведения