CERT_SELECT_STRUCT_A 結構 (cryptdlg.h)

CERT_SELECT_STRUCT 結構包含要選取憑證選取對話框中所呈現憑證的準則。 此結構用於 CertSelectCertificate 函式 中。

語法

typedef struct tagCSSA {
  DWORD           dwSize;
  HWND            hwndParent;
  HINSTANCE       hInstance;
  LPCSTR          pTemplateName;
  DWORD           dwFlags;
  LPCSTR          szTitle;
  DWORD           cCertStore;
  HCERTSTORE      *arrayCertStore;
  LPCSTR          szPurposeOid;
  DWORD           cCertContext;
  PCCERT_CONTEXT  *arrayCertContext;
  LPARAM          lCustData;
  PFNCMHOOKPROC   pfnHook;
  PFNCMFILTERPROC pfnFilter;
  LPCSTR          szHelpFileName;
  DWORD           dwHelpId;
  HCRYPTPROV      hprov;
} CERT_SELECT_STRUCT_A, *PCERT_SELECT_STRUCT_A;

成員

dwSize

這個結構的大小,以位元組為單位。

hwndParent

CertSelectCertificate 產生之任何對話框之父視窗的句柄。

hInstance

模組的句柄,其可執行檔包含對話框範本。

pTemplateName

如果在 dwFlags 成員中設定CSS_ENABLETEMPLATE旗標,請將 pTemplateName 設定為全域記憶體物件的指標,其中包含 DialogBoxIndirectParam 用來建立對話框的範本。 對話框範本是由描述對話框的標頭所組成。 標頭後面接著一或多個其他數據區塊,這些區塊會描述對話框中每個控件。 範本可以使用標準格式或擴充格式。

如果 CSS_ENABLETEMPLATEHANDLE 旗標是在 dwFlags 中設定, pTemplateName 會指定對話框範本。 pTemplateName 是指定對話框範本名稱之 Null 終止字元字串的指標,或是指定對話框範本之資源識別碼的整數值。 如果 指定資源標識碼,則其高序字必須是零,且其低序字必須包含標識符。 建立這個整數值的其中一種方式是使用 MAKEINTRESOURCE 宏。

dwFlags

這個成員可以是下列一或多個值。

意義
CSS_HIDE_PROPERTIES
隱藏 [ 屬性] 按鈕。
CSS_ENABLEHOOK
pfnHook 中傳遞攔截程式。
CSS_ALLOWMULTISELECT
啟用多重選取憑證。 目前不支援此選項,而且會被忽略。
CSS_SHOW_HELP
顯示 [ 說明] 按鈕。
CSS_ENABLETEMPLATE
導致 CertSelectCertificate 函式呼叫 DialogBoxIndirectParam 函式來建立對話框。 如需詳細資訊,請參閱 pTemplateName
CSS_ENABLETEMPLATEHANDLE
導致 CertSelectCertificate 函式呼叫 DialogBoxParam 函式來建立對話方塊。 如需詳細資訊,請參閱 pTemplateName

szTitle

字串的指標,其中包含對話框標題的文字。

cCertStore

arrayCertStore 陣列中的元素數目。

arrayCertStore

對話框列舉和顯示憑證來源之證書存儲陣列的指標。 cCertStore 成員包含這個數位中的元素數目。

szPurposeOid

對象識別符的字串表示指標, (OID) ,以取得 EKU) (的增強密鑰使用方式。 如果提供 OID,則只會顯示包含此 EKU 的憑證。

cCertContext

arrayCertContext 陣列中的元素數目。 在 CertSelectCertificate 函式傳回之後,此成員會包含用戶選取的憑證數目。 目前,使用者只能選取一個憑證。

arrayCertContext

CERT_CONTEXT 結構的陣列指標。 cCertContext 成員會指定這個陣列中的元素數目。 此陣列至少必須包含一個專案。

一開始顯示 CertSelectCertificate 函式顯示的對話框時,會選取這些結構所代表的憑證。 目前,只會使用此陣列中的第一個憑證。 如果 CertSelectCertificate 函式成功,將會使用 CertFreeCertificateContext 函式釋放此陣列中的第一個憑證。 如果這個陣列中的第一個專案是 NULL,則一開始不會在對話框中選取任何憑證。

在 CertSelectCertificate 函式傳回之後,此陣列會包含用戶選取的憑證。 目前,使用者只能選取一個憑證。

lCustData

位元組值陣列的指標,其中包含傳遞至 pfnFilter 所參考之篩選程式的自定義數據。 CertSelectCertificate 函式不會使用此自定義數據。

pfnHook

Hook 回呼函式的 PFNCMHOOKPROC 函式指標。 在對話框處理訊息之前,會呼叫此函式。 如需詳細資訊,請參閱 勾點

pfnFilter

篩選回呼函式的 PFNCMFILTERPROC 函式指標。 這會呼叫以判斷對話框將顯示哪些憑證。

szHelpFileName

Null 終止字串的指標,其中包含說明檔的完整路徑。

dwHelpId

主題的內容識別碼。 如需相關資訊,請參閱
WinHelp

hprov

密碼 編譯服務提供者 (CSP 的句柄,) 用於憑證驗證。

備註

注意

cryptdlg.h 標頭會將CERT_SELECT_STRUCT定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
標頭 cryptdlg.h

另請參閱

CertSelectCertificate