Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

118 lines
3.4 KiB

  1. //+--------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1996 - 1999
  5. //
  6. // File: configp.h
  7. //
  8. // Contents: Declaration of CCertConfigPrivate
  9. //
  10. //---------------------------------------------------------------------------
  11. #include <cryptui.h>
  12. #include "cscomres.h" // main symbols
  13. /////////////////////////////////////////////////////////////////////////////
  14. // certcli
  15. typedef struct _CERT_AUTHORITY_INFO
  16. {
  17. WCHAR *pwszSanitizedName;
  18. WCHAR *pwszSanitizedShortName;
  19. WCHAR *pwszSanitizedOrgUnit;
  20. WCHAR *pwszSanitizedOrganization;
  21. WCHAR *pwszSanitizedLocality;
  22. WCHAR *pwszSanitizedState;
  23. WCHAR *pwszSanitizedCountry;
  24. WCHAR *pwszSanitizedConfig;
  25. WCHAR *pwszSanitizedExchangeCertificate;
  26. WCHAR *pwszSanitizedSignatureCertificate;
  27. WCHAR *pwszSanitizedDescription;
  28. DWORD Flags;
  29. } CERT_AUTHORITY_INFO;
  30. typedef CRYPTUI_CA_CONTEXT const * (WINAPI FNCRYPTUIDLGSELECTCA)(
  31. IN CRYPTUI_SELECT_CA_STRUCT const *pCryptUISelectCA);
  32. typedef BOOL (WINAPI FNCRYPTUIDLGFREECACONTEXT)(
  33. IN CRYPTUI_CA_CONTEXT const *pCAContext);
  34. class CCertConfigPrivate
  35. {
  36. public:
  37. CCertConfigPrivate()
  38. {
  39. m_pCertAuthorityInfo = NULL;
  40. m_fUseDS = TRUE;
  41. m_pwszSharedFolder = NULL;
  42. m_hModuleCryptUI = NULL;
  43. }
  44. ~CCertConfigPrivate();
  45. // ICertConfig
  46. public:
  47. HRESULT Reset(
  48. /* [in] */ LONG Index,
  49. /* [retval][out] */ LONG __RPC_FAR *pCount);
  50. HRESULT Next(
  51. /* [retval][out] */ LONG __RPC_FAR *pIndex);
  52. HRESULT GetField(
  53. /* [in] */ BSTR const strFieldName,
  54. /* [retval][out] */ BSTR __RPC_FAR *pstrOut);
  55. HRESULT GetConfig(
  56. /* [in] */ LONG Flags,
  57. /* [retval][out] */ BSTR __RPC_FAR *pstrOut);
  58. // ICertConfig2
  59. public:
  60. HRESULT SetSharedFolder(
  61. /* [in] */ const BSTR strSharedFolder);
  62. // myGetConfigFromPicker
  63. public:
  64. HRESULT GetConfigFromPicker(
  65. OPTIONAL IN HWND hwndParent,
  66. OPTIONAL IN WCHAR const *pwszPrompt,
  67. OPTIONAL IN WCHAR const *pwszTitle,
  68. OPTIONAL IN WCHAR const *pwszSharedFolder,
  69. IN BOOL fUseDS,
  70. IN BOOL fSkipLocalCA,
  71. IN BOOL fCountOnly,
  72. OUT DWORD *pdwCount,
  73. OUT CRYPTUI_CA_CONTEXT const **ppCAContext);
  74. private:
  75. HRESULT _ResizeCAInfo(
  76. IN LONG Count);
  77. HRESULT _LoadTable(VOID);
  78. CRYPTUI_CA_CONTEXT const *_CryptUIDlgSelectCA(
  79. IN CRYPTUI_SELECT_CA_STRUCT const *pCryptUISelectCA);
  80. BOOL _CryptUIDlgFreeCAContext(
  81. IN CRYPTUI_CA_CONTEXT const *pCAContext);
  82. HRESULT _AddRegistryConfigEntry(
  83. IN WCHAR const *pwszMachine,
  84. IN WCHAR const *pwszMachineOld,
  85. IN WCHAR const *pwszSanitizedCAName,
  86. IN BOOL fParentCA,
  87. OPTIONAL IN CERT_CONTEXT const *pccCAChild,
  88. OPTIONAL OUT CERT_CONTEXT const **ppccCAOut); // NULL == local CA
  89. CERT_AUTHORITY_INFO *m_pCertAuthorityInfo;
  90. LONG m_Index;
  91. LONG m_Count;
  92. BOOL m_fUseDS;
  93. WCHAR *m_pwszSharedFolder;
  94. HMODULE m_hModuleCryptUI;
  95. FNCRYPTUIDLGSELECTCA *m_pfnCryptUIDlgSelectCA;
  96. FNCRYPTUIDLGFREECACONTEXT *m_pfnCryptUIDlgFreeCAContext;
  97. };