//+-------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1996 - 1999 // // File: certsrvi.idl // // Contents: Definition of DCOM Interface for RPC services // //--------------------------------------------------------------------------- import "unknwn.idl"; import "certbase.idl"; import "esent.idl"; import "certbcli.idl"; import "oaidl.idl"; // Interface ICertRequestD [ object, uuid(d99e6e70-fc88-11d0-b498-00a0c90312f3), helpstring("ICertRequest DCOM Interface"), pointer_default(unique) ] interface ICertRequestD: IUnknown { HRESULT Request( [in] DWORD dwFlags, [in, string, unique] wchar_t const *pwszAuthority, [in, out, ref] DWORD *pdwRequestId, [out] DWORD *pdwDisposition, [in, string, unique] wchar_t const *pwszAttributes, [in, ref] CERTTRANSBLOB const *pctbRequest, [out, ref] CERTTRANSBLOB *pctbCertChain, [out, ref] CERTTRANSBLOB *pctbEncodedCert, [out, ref] CERTTRANSBLOB *pctbDispositionMessage); HRESULT GetCACert( [in] DWORD fchain, [in, string, unique] wchar_t const *pwszAuthority, [out, ref] CERTTRANSBLOB *pctbOut); // this is a test function HRESULT Ping( [in, string, unique] wchar_t const *pwszAuthority); }; // Interface ICertRequestD2 [ object, uuid(5422fd3a-d4b8-4cef-a12e-e87d4ca22e90), helpstring("ICertRequest2 DCOM Interface"), pointer_default(unique) ] interface ICertRequestD2: ICertRequestD { HRESULT Request2( [in, string, unique] wchar_t const *pwszAuthority, [in] DWORD dwFlags, [in, string, unique] wchar_t const *pwszSerialNumber, // OPTIONAL [in, out, ref] DWORD *pdwRequestId, //-1:use Serial [out] DWORD *pdwDisposition, [in, string, unique] wchar_t const *pwszAttributes, [in, ref] CERTTRANSBLOB const *pctbRequest, [out, ref] CERTTRANSBLOB *pctbFullResponse, [out, ref] CERTTRANSBLOB *pctbEncodedCert, [out, ref] CERTTRANSBLOB *pctbDispositionMessage); HRESULT GetCAProperty( [in, string, unique] wchar_t const *pwszAuthority, [in] LONG PropId, // CR_PROP_* [in] LONG PropIndex, [in] LONG PropType, // PROPTYPE_* [out, ref] CERTTRANSBLOB *pctbPropertyValue); HRESULT GetCAPropertyInfo( [in, string, unique] wchar_t const *pwszAuthority, [out] LONG *pcProperty, [out, ref] CERTTRANSBLOB *pctbPropInfo); // this is a test function HRESULT Ping2( [in, string, unique] wchar_t const *pwszAuthority); }; // Interface ICertAdminD [ object, uuid(d99e6e71-fc88-11d0-b498-00a0c90312f3), helpstring("ICertAdmin DCOM Interface"), pointer_default(unique) ] interface ICertAdminD: IUnknown { HRESULT SetExtension( [in, string, unique] wchar_t const *pwszAuthority, [in] DWORD dwRequestId, [in, string, unique] wchar_t const *pwszExtensionName, [in] DWORD dwType, [in] DWORD dwFlags, [in, ref] CERTTRANSBLOB *pctbValue); HRESULT SetAttributes( [in, string, unique] wchar_t const *pwszAuthority, [in] DWORD dwRequestId, [in, string, unique] wchar_t const *pwszAttributes); HRESULT ResubmitRequest( [in, string, unique] wchar_t const *pwszAuthority, [in] DWORD dwRequestId, [out] DWORD *pdwDisposition); HRESULT DenyRequest( [in, string, unique] wchar_t const *pwszAuthority, [in] DWORD dwRequestId); HRESULT IsValidCertificate( [in, string, unique] wchar_t const *pwszAuthority, [in, string, unique] wchar_t const *pSerialNumber, [out] LONG *pRevocationReason, [out] LONG *pDisposition); HRESULT PublishCRL( [in, string, unique] wchar_t const *pwszAuthority, [in] FILETIME FileTime); HRESULT GetCRL( [in, string, unique] wchar_t const *pwszAuthority, [out, ref] CERTTRANSBLOB *pctbCRL); HRESULT RevokeCertificate( [in, string, unique] wchar_t const *pwszAuthority, [in, string, unique] wchar_t const *pwszSerialNumber, [in] DWORD Reason, [in] FILETIME FileTime); HRESULT EnumViewColumn( [in, string, unique] wchar_t const *pwszAuthority, [in] DWORD iColumn, [in] DWORD cColumn, [out] DWORD *pcColumn, [out, ref] CERTTRANSBLOB *pctbColumnInfo); HRESULT GetViewDefaultColumnSet( [in, string, unique] wchar_t const *pwszAuthority, [in] DWORD iColumnSetDefault, [out] DWORD *pcColumn, [out, ref] CERTTRANSBLOB *pctbColumnInfo); HRESULT EnumAttributesOrExtensions( [in, string, unique] wchar_t const *pwszAuthority, [in] DWORD RowId, [in] DWORD Flags, [in, string, unique] wchar_t const *pwszLast, [in] DWORD celt, [out] DWORD *pceltFetched, [out, ref] CERTTRANSBLOB *pctbOut); HRESULT OpenView( [in, string, unique] wchar_t const *pwszAuthority, [in] DWORD ccvr, [in, size_is(ccvr)] CERTVIEWRESTRICTION const *acvr, [in] DWORD ccolOut, [in, size_is(ccolOut)] DWORD const *acolOut, [in] DWORD ielt, [in] DWORD celt, [out] DWORD *pceltFetched, [out, ref] CERTTRANSBLOB *pctbResultRows); HRESULT EnumView( [in, string, unique] wchar_t const *pwszAuthority, [in] DWORD ielt, [in] DWORD celt, [out] DWORD *pceltFetched, [out, ref] CERTTRANSBLOB *pctbResultRows); HRESULT CloseView( [in, string, unique] wchar_t const *pwszAuthority); HRESULT ServerControl( [in, string, unique] wchar_t const *pwszAuthority, [in] DWORD dwControlFlags, [out, ref] CERTTRANSBLOB *pctbOut); // this is a test function HRESULT Ping( [in, string, unique] wchar_t const *pwszAuthority); HRESULT GetServerState( [in, string, unique] wchar_t const *pwszAuthority, [out] DWORD *pdwState); HRESULT BackupPrepare( [in, string, unique] wchar_t const *pwszAuthority, [in] unsigned long grbitJet, [in] unsigned long dwBackupFlags, [in] WCHAR const *pwszBackupAnnotation, [in] DWORD dwClientIdentifier); HRESULT BackupEnd(); HRESULT BackupGetAttachmentInformation( [out, size_is( , *pcwcDBFiles)] WCHAR **ppwszzDBFiles, [out] LONG *pcwcDBFiles); HRESULT BackupGetBackupLogs( [out, size_is( , *pcwcLogFiles)] WCHAR **ppwszzLogFiles, [out] LONG *pcwcLogFiles); HRESULT BackupOpenFile( [in, string, unique] wchar_t const *pwszPath, [out] unsigned hyper *pliLength); HRESULT BackupReadFile( [ref, out, size_is(cbBuffer)] BYTE *pbBuffer, [in] LONG cbBuffer, [out] LONG *pcbRead); HRESULT BackupCloseFile(); HRESULT BackupTruncateLogs(); HRESULT ImportCertificate( [in, string, unique] wchar_t const *pwszAuthority, [in, ref] CERTTRANSBLOB *pctbCertificate, [in] LONG dwFlags, [out] LONG *pdwRequestId); HRESULT BackupGetDynamicFiles( [out, size_is( , *pcwcFiles)] WCHAR **ppwszzFiles, [out] LONG *pcwcFiles); HRESULT RestoreGetDatabaseLocations( [out, size_is( , *pcwcPaths)] WCHAR **ppwszzDatabaseLocations, [out] LONG *pcwcPaths); }; // Interface ICertAdminD2 [ object, uuid(7fe0d935-dda6-443f-85d0-1cfb58fe41dd), helpstring("ICertAdmin2 DCOM Interface"), pointer_default(unique) ] interface ICertAdminD2: ICertAdminD { HRESULT PublishCRLs( [in, string, unique] wchar_t const *pwszAuthority, [in] FILETIME FileTime, [in] DWORD Flags); // CA_CRL_* HRESULT GetCAProperty( [in, string, unique] wchar_t const *pwszAuthority, [in] LONG PropId, // CR_PROP_* [in] LONG PropIndex, [in] LONG PropType, // PROPTYPE_* [out, ref] CERTTRANSBLOB *pctbPropertyValue); HRESULT SetCAProperty( [in, string, unique] wchar_t const *pwszAuthority, [in] LONG PropId, // CR_PROP_* [in] LONG PropIndex, [in] LONG PropType, // PROPTYPE_* [in] CERTTRANSBLOB *pctbPropertyValue); HRESULT GetCAPropertyInfo( [in, string, unique] wchar_t const *pwszAuthority, [out] LONG *pcProperty, [out, ref] CERTTRANSBLOB *pctbPropInfo); HRESULT EnumViewColumnTable( [in, string, unique] wchar_t const *pwszAuthority, [in] DWORD iTable, [in] DWORD iColumn, [in] DWORD cColumn, [out] DWORD *pcColumn, [out, ref] CERTTRANSBLOB *pctbColumnInfo); HRESULT GetCASecurity( [in, string, unique] wchar_t const *pwszAuthority, [out, ref] CERTTRANSBLOB *pctbSD); HRESULT SetCASecurity( [in, string, unique] wchar_t const *pwszAuthority, [in, ref] CERTTRANSBLOB *pctbSD); // this is a test function HRESULT Ping2( [in, string, unique] wchar_t const *pwszAuthority); HRESULT GetArchivedKey( [in, string, unique] wchar_t const *pwszAuthority, [in] DWORD dwRequestId, [out, ref] CERTTRANSBLOB *pctbArchivedKey); HRESULT GetAuditFilter( [in, string, unique] wchar_t const *pwszAuthority, [out] DWORD *pdwFilter); HRESULT SetAuditFilter( [in, string, unique] wchar_t const *pwszAuthority, [in] DWORD dwFilter); HRESULT GetOfficerRights( [in, string, unique] wchar_t const *pwszAuthority, [out] BOOL *pfEnabled, [out, ref] CERTTRANSBLOB *pctbSD); HRESULT SetOfficerRights( [in, string, unique] wchar_t const *pwszAuthority, [in] BOOL fEnable, [in, ref] CERTTRANSBLOB *pctbSD); HRESULT GetConfigEntry( [in, string, unique] wchar_t const *pwszAuthority, [in, string, unique] wchar_t const *pwszNodePath, [in, string, ref] wchar_t const *pwszEntry, [out, ref] VARIANT *pVariant); HRESULT SetConfigEntry( [in, string, unique] wchar_t const *pwszAuthority, [in, string, unique] wchar_t const *pwszNodePath, [in, string, ref] wchar_t const *pwszEntry, [in, ref] VARIANT *pVariant); HRESULT ImportKey( [in, string, unique] wchar_t const *pwszAuthority, [in] DWORD dwRequestId, [in, string, unique] wchar_t const *pwszCertHash, [in] DWORD dwFlags, [in, ref] CERTTRANSBLOB *pctbKey); HRESULT GetMyRoles( [in, string, unique] wchar_t const *pwszAuthority, [out] LONG *pdwRoles); HRESULT DeleteRow( [in, string, unique] wchar_t const *pwszAuthority, [in] DWORD dwFlags, // CDR_* [in] FILETIME FileTime, [in] DWORD dwTable, // CVRC_TABLE_* [in] DWORD dwRowId, [out, retval] LONG *pcDeleted); }