署名マネージャーを初期化する
このトピックでは、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 ドキュメントが読み込まれた後、署名マネージャーを使用する準備が整います。
関連トピック
-
次のステップ
-
このセクションで使用
-
詳細情報