Export (0) Print
Expand All

6 Appendix A: Full IDL

The DFS-R Helper Protocol contains one interface, whose IDL definition is listed in this section.

For ease of implementation, the full IDL is provided. The IDL definition for this interface imports "ms-oaut.idl", which in turn imports "ms-dcom.idl" and "ms-dtyp.idl", where "ms-oaut.idl" is the IDL specified in [MS-OAUT], Appendix A; "ms-dcom.idl" is the IDL specified in [MS-DCOM], Appendix A; and "ms-dtyp.idl" is the IDL specified in [MS-DTYP], Appendix A.

import "ms-oaut.idl";

#define SAFEARRAY(datatype) SAFEARRAY*

[
    uuid(9009D654-250B-4e0d-9AB0-ACB63134F69F)
]
typedef enum DfsrHelperErrorsEnum
{
    dfsrHelperErrorNotLocalAdmin = 0x80042001,
    dfsrHelperErrorCreateVerifyServerControl = 0x80042002,
    dfsrHelperLdapErrorBase = 0x80043000
} DfsrHelperErrorsEnum;

[
    uuid(CEB5D7B4-3964-4f71-AC17-4BF57A379D87)
]
typedef enum DfsrReportingFlags
{
    REPORTING_FLAGS_NONE= 0,
    REPORTING_FLAGS_BACKLOG = 1,
    REPORTING_FLAGS_FILES   = 2,
} DfsrReportingFlags;

typedef [uuid(D3766938-9FB7-4392-AF2F-2CE8749DBBD0)]
struct AdAttributeData
{
    long operation;
    BSTR attributeName;
    BSTR attributeValue;
    VARIANT_BOOL isString;
    long length;
}
_AdAttributeData;

typedef
[uuid(7A2323C7-9EBE-494a-A33C-3CC329A18E1D)]
struct VersionVectorData
{
    long uncompressedSize;
    long backlogCount;
    BSTR contentSetGuid;
    VARIANT versionVector;
}
_VersionVectorData;

//----------------------------------------------------------------------------

[
    object,
    uuid(4BB8AB1D-9EF9-4100-8EB6-DD4B4E418B72),
    oleautomation,
    helpstring("IADProxy Interface"),
    pointer_default(unique)
]
interface IADProxy : IUnknown
{
   HRESULT CreateObject(
      [in] BSTR domainControllerName,
      [in] BSTR distinguishedName, 
      [in] SAFEARRAY(_AdAttributeData) *attributes,
      [in] BSTR verifyNameDomainControllerName);
   
   HRESULT DeleteObject(
      [in] BSTR domainControllerName, 
      [in] BSTR distinguishedName);

   HRESULT ModifyObject(
      [in] BSTR domainControllerName,
      [in] BSTR distinguishedName, 
      [in] SAFEARRAY(_AdAttributeData) *attributes);
};

//----------------------------------------------------------------------------

[
    object,
    uuid(C4B0C7D9-ABE0-4733-A1E1-9FDEDF260C7A),
    oleautomation,
    helpstring("IADProxy2 Interface"),
    pointer_default(unique)
]
interface IADProxy2 : IADProxy
{
   HRESULT CreateObject(
      [in] BSTR domainControllerName,
      [in] BSTR distinguishedName, 
      [in] SAFEARRAY(_AdAttributeData) *attributes,
      [in] BSTR verifyNameDomainControllerName,
      [in] BSTR networkNameResourceName);
   
   HRESULT DeleteObject(
      [in] BSTR domainControllerName, 
      [in] BSTR distinguishedName,
      [in] BSTR networkNameResourceName);

   HRESULT ModifyObject(
      [in] BSTR domainControllerName,
      [in] BSTR distinguishedName, 
      [in] SAFEARRAY(_AdAttributeData) *attributes,
      [in] BSTR networkNameResourceName);
};

//----------------------------------------------------------------------------

[
    object,
    uuid(E65E8028-83E8-491b-9AF7-AAF6BD51A0CE),
    oleautomation,
    helpstring("IServerHealthReport Interface"),
    pointer_default(unique)
]
interface IServerHealthReport : IUnknown
{
    HRESULT GetReport(
      [in] GUID replicationGroupGuid,
      [in] BSTR referenceMember,
      [in] SAFEARRAY(_VersionVectorData) *referenceVersionVectors,
      [in] long flags,  
      [out] SAFEARRAY(_VersionVectorData) *memberVersionVectors,
      [out] BSTR *reportXML);

    HRESULT GetCompressedReport(
      [in] GUID replicationGroupGuid, 
      [in] BSTR referenceMember,
      [in] SAFEARRAY(_VersionVectorData) *referenceVersionVectors,
      [in] long flags,  
      [out] SAFEARRAY(_VersionVectorData) *memberVersionVectors,
      [out] BSTR *reportCompressed,
      [out] long *uncompressedReportSize);
      
    HRESULT GetRawReportEx(
      [in] GUID replicationGroupGuid,
      [in] SAFEARRAY(VARIANT) *reportOptions,
      [out] SAFEARRAY(VARIANT) *report);

    HRESULT GetReferenceVersionVectors(
      [in] GUID replicationGroupGuid,
      [out] SAFEARRAY(_VersionVectorData) *referenceVersionVectors);

    HRESULT Opnum7NotUsedOnWire(void);

    HRESULT GetReferenceBacklogCounts(
      [in] SAFEARRAY(_VersionVectorData) *flatMemberVersionVectors,
      [out] SAFEARRAY(long) *backlogCounts);
}

[
    object,
    uuid(20D15747-6C48-4254-A358-65039FD8C63C),
    oleautomation,
    helpstring("IServerHealthReport2 Interface"),
    pointer_default(unique)
]
interface IServerHealthReport2 : IServerHealthReport
{
    //
    // Gets the version of XML report generated with default 
    // parameters
    //

    HRESULT GetReport(
      [in] GUID replicationGroupGuid,
      [in] BSTR referenceMember,
      [in] BSTR serverName,
      [in] SAFEARRAY(_VersionVectorData) *referenceVersionVectors,
      [in] LONG flags,  
      [out] SAFEARRAY(_VersionVectorData) *memberVersionVectors,
      [out] BSTR *reportXML);

    // 
    // Gets the compressed version of XML report generated
    // with default parameters
    //

    HRESULT GetCompressedReport(
      [in] GUID replicationGroupGuid, 
      [in] BSTR referenceMember,
      [in] BSTR serverName,
      [in] SAFEARRAY(_VersionVectorData) *referenceVersionVectors,
      [in] LONG flags,  
      [out] SAFEARRAY(_VersionVectorData) *memberVersionVectors,
      [out] BSTR *reportCompressed,
      [out] LONG *uncompressedReportSize); // in bytes 
}

 
Show:
© 2014 Microsoft