署名マネージャーを初期化する

このトピックでは、XPS ドキュメントで使用するために署名マネージャーを初期化する方法について説明します。

プログラムで次のコード例を使用する前に、「一般的なデジタル署名プログラミング タスク」の免責事項をお読みください。

Crypto API の Windows 7 機能を使用するには、次のように CRYPT_OID_INFO_HAS_EXTRA_FIELDS シンボルを定義します:

#define CRYPT_OID_INFO_HAS_EXTRA_FIELDS

次に、次のコード例に示すように、CoCreateInstance を呼び出して IXpsSignatureManager インターフェイスをインスタンス化します。

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 によってインスタンス化されたインターフェイスは、1 つの XPS ドキュメントでのみ使用できます。これは、他のメソッドを呼び出す前に LoadPackageFile または LoadPackageStream を呼び出すことによって読み込む必要があります。

IXpsSignatureManager インターフェイスがインスタンス化され、XPS ドキュメントが読み込まれた後、署名マネージャーを使用する準備が整います。

次のステップ

ドキュメントに署名する

XPS ドキュメントに署名要求を追加する

ドキュメント署名の確認

このセクションで使用

Cocreateinstance

IXpsSignatureManager

詳細情報

XPS デジタル署名 API のエラー

XPS ドキュメントのエラー

XML Paper Specification