2025-04-27 07:49:33 -04:00

348 lines
12 KiB
Plaintext

//+--------------------------------------------------------------------------
//
// 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);
}