ICEnroll4::createRequest メソッド (xenroll.h)

[このメソッドは、Windows Server 2008 および Windows Vista では使用できなくなりました。

createRequest メソッドは、PKCS #10、PKCS #7、または完全な証明書管理 over CMS (CMC) 形式の証明書要求を作成し、それを文字列に格納します。 このメソッドは、 ICEnroll4 インターフェイスで最初に定義されました。

構文

HRESULT createRequest(
  [in]  LONG Flags,
  [in]  BSTR strDNName,
  [in]  BSTR Usage,
  [out] BSTR *pstrRequest
);

パラメーター

[in] Flags

作成する証明書要求の種類を示す 値。 これには、次のいずれかの値を指定できます。

意味
XECR_CMC
完全な CMC
XECR_PKCS10_V1_5
PKCS 10
XECR_PKCS10_V2_0
PKCS 10 バージョン 2
XECR_PKCS7
PKCS 7

[in] strDNName

このパラメーターには NULL を指定できます。それ以外の場合、このパラメーターは、要求が行われるエンティティの識別名 (DN) を指定します。 DN 名は、"CN=User, O=Microsoft" などの X.500 名前付け規則に従う必要があります。 2 文字のプレフィックスが存在しない場合は、代わりに OID を指定できます。

[in] Usage

生成される証明書の目的 (個人または商用の Authenticode 証明書、クライアント認証など) を記述 するオブジェクト識別子 (OID)。 複数の OID をコンマで区切って指定することもできます。

[out] pstrRequest

要求を受信する BSTR (BASE64_HEADER形式) へのポインター。 BSTR の使用が完了したら、SysFreeString 関数を呼び出して解放します。

戻り値

C++

メソッドが成功した場合、メソッドは S_OKを返します。

メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。 一般的なエラー コードの一覧については、「 共通の HRESULT 値」を参照してください。

VB

戻り値は、要求を含む 文字列 (BASE64_HEADER形式) です。

注釈

このメソッドがスクリプトから呼び出されると、ユーザーが証明書要求の作成を許可するかどうかを尋ねるユーザー インターフェイスが表示されます。 .pvk または .spc ファイルが指定されている場合、 メソッドは、ユーザーがファイル システムへの書き込み操作を許可するかどうかを確認するユーザー インターフェイスを表示します。

BSTR bstrDN = NULL;
BSTR bstrReq = NULL;
ICEnroll4 * pEnroll4 = NULL;
HRESULT hr;

hr = CoInitializeEx( NULL, COINIT_APARTMENTTHREADED );
if (FAILED(hr))
{
    printf("Failed CoInitializeEx - %x\n", hr);
    goto error;
}

hr = CoCreateInstance( __uuidof(CEnroll),
                       NULL,
                       CLSCTX_INPROC_SERVER,
                       __uuidof(ICEnroll4),
                       (void **)&pEnroll4);
if (FAILED(hr))
{
    printf("Failed CoCreateInstance - pEnroll4 [%x]\n", hr);
    goto error;
}

// generate the DN for the cert request
bstrDN = SysAllocString( TEXT("CN=Your Name")   // common name
                         TEXT(",OU=Your Unit")  // org unit
                         TEXT(",O=Your Org")    // organization
                         TEXT(",L=Your City")   // locality
                         TEXT(",S=Your State")  // state
                         TEXT(",C=Your Country") );  // country/region

// create the CMC request
hr = pEnroll4->createRequest( XECR_CMC,
                              bstrDN,
                              NULL,
                              &bstrReq );
if (FAILED(hr))
{
        printf("Failed createRequest - pEnroll4 [%x]\n", hr);
        goto error;
}
else
    // do something with the CMC (bstrReq);

error:

//clean up resources, and so on
if ( bstrDN )
    SysFreeString( bstrDN );
if ( bstrReq )
    SysFreeString( bstrReq );
if ( pEnroll4 )
    pEnroll4->Release();

CoUninitialize();

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー xenroll.h
Library Uuid.lib
[DLL] Xenroll.dll