#if !defined( _CERT_INCLUDED ) #define _CERT_INCLUDED class CCertMapperMethod { #define IISMAPPER_LOCATE_BY_CERT 1 #define IISMAPPER_LOCATE_BY_NAME 2 #define IISMAPPER_LOCATE_BY_ACCT 3 #define IISMAPPER_LOCATE_BY_INDEX 4 private: IMSAdminBase* m_pIABase; //interface pointer METADATA_HANDLE m_hmd; LPWSTR m_pszMetabasePath; HRESULT Init(LPCWSTR); HRESULT Locate(LONG, VARIANT, LPWSTR); HRESULT SetString(LONG, VARIANT, BSTR, DWORD); HRESULT SetBSTR(BSTR*, DWORD, LPBYTE); HRESULT SetVariantAsByteArray(VARIANT*, DWORD, LPBYTE); HRESULT SetVariantAsBSTR(VARIANT*, DWORD, LPBYTE); HRESULT SetVariantAsLong(VARIANT*, DWORD); HRESULT GetStringFromBSTR(BSTR, LPSTR*, LPDWORD, BOOL fAddDelimInCount = true); HRESULT GetStringFromVariant(VARIANT*, LPSTR*, LPDWORD, BOOL fAddDelimInCount = true); HRESULT OpenMd(LPWSTR, DWORD dwPermission = METADATA_PERMISSION_READ); HRESULT CloseMd(BOOL fSave = FALSE); HRESULT DeleteMdObject(LPWSTR); HRESULT CreateMdObject(LPWSTR); HRESULT OpenAdminBaseKey(LPWSTR, DWORD); void CloseAdminBaseKey(); void FreeString(LPSTR psz); public: CCertMapperMethod(LPCWSTR); ~CCertMapperMethod(); HRESULT CreateMapping(VARIANT, BSTR, BSTR, BSTR, LONG); HRESULT GetMapping(LONG, VARIANT, VARIANT*, VARIANT*, VARIANT*, VARIANT*, VARIANT*); HRESULT DeleteMapping(LONG, VARIANT); HRESULT SetEnabled(LONG, VARIANT, LONG); HRESULT SetName(LONG, VARIANT, BSTR); HRESULT SetPwd(LONG, VARIANT, BSTR); HRESULT SetAcct(LONG, VARIANT, BSTR); HRESULT SetMdData(LPWSTR, DWORD, DWORD, DWORD, LPBYTE); HRESULT GetMdData(LPWSTR, DWORD, DWORD, LPDWORD, LPBYTE*); }; #endif