#define DECLARE_IUnknown_METHODS \ STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ; #define DECLARE_IDispatch_METHODS \ STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) ; \ \ STDMETHOD(GetTypeInfo)(\ THIS_ \ UINT itinfo,\ LCID lcid,\ ITypeInfo FAR* FAR* pptinfo) ;\ \ STDMETHOD(GetIDsOfNames)( \ THIS_ \ REFIID riid,\ OLECHAR FAR* FAR* rgszNames,\ UINT cNames,\ LCID lcid, \ DISPID FAR* rgdispid) ;\ \ STDMETHOD(Invoke)(\ THIS_\ DISPID dispidMember,\ REFIID riid,\ LCID lcid,\ WORD wFlags,\ DISPPARAMS FAR* pdispparams,\ VARIANT FAR* pvarResult,\ EXCEPINFO FAR* pexcepinfo,\ UINT FAR* puArgErr) ; #define DECLARE_ISupportErrorInfo_METHODS \ STDMETHOD(InterfaceSupportsErrorInfo)(THIS_ REFIID riid); #define DECLARE_IADs_METHODS \ STDMETHOD(get_Name)(THIS_ BSTR FAR* retval) ; \ STDMETHOD(get_ADsPath)(THIS_ BSTR FAR* retval); \ STDMETHOD(get_GUID)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(get_Class)(THIS_ BSTR FAR* retval);\ STDMETHOD(get_Parent)(THIS_ BSTR FAR* retval);\ STDMETHOD(get_Schema)(THIS_ BSTR FAR* retval);\ STDMETHOD(SetInfo)(THIS) ; \ STDMETHOD(GetInfo)(THIS) ; \ STDMETHOD(Get)(THIS_ BSTR bstrName, VARIANT FAR* pvProp) ; \ STDMETHOD(Put)(THIS_ BSTR bstrName, VARIANT vProp) ; \ STDMETHOD(GetEx)(THIS_ BSTR bstrName, VARIANT FAR* pvProp) ; \ STDMETHOD(PutEx)(THIS_ long lnControlCode, BSTR bstrName, VARIANT vProp) ; \ STDMETHOD(GetInfoEx)(THIS_ VARIANT vProperties, long lnReserved); #define DECLARE_IADsStatus_METHODS\ STDMETHOD(get_Code)(THIS_ long FAR* plStatusCode);\ STDMETHOD(get_String)(THIS_ BSTR FAR* pbstrStatusString); #define DECLARE_IADsContainer_METHODS \ STDMETHOD(get_Count)(THIS_ long FAR* retval) ; \ STDMETHOD(get_Filter)(THIS_ VARIANT FAR* pVar) ; \ STDMETHOD(put_Filter)(THIS_ VARIANT Var) ; \ STDMETHOD(get_Hints)(THIS_ VARIANT FAR* pvFilter); \ STDMETHOD(put_Hints)(THIS_ VARIANT vHints) ; \ STDMETHOD(GetObject)(THIS_ BSTR ClassName, BSTR RelativeName, IDispatch * FAR* ppObject) ;\ STDMETHOD(get__NewEnum)(THIS_ IUnknown * FAR* retval) ; \ STDMETHOD(Create)(THIS_ BSTR ClassName, BSTR RelativeName, IDispatch * FAR* ppObject) ;\ STDMETHOD(Delete)(THIS_ BSTR bstrClassName, BSTR bstrRelativeName) ;\ STDMETHOD(CopyHere)(THIS_ BSTR SourceName, BSTR NewName, IDispatch * FAR* ppObject) ;\ STDMETHOD(MoveHere)(THIS_ BSTR SourceName, BSTR NewName, IDispatch * FAR* ppObject) ; #define DECLARE_IADsNamespaces_METHODS \ STDMETHOD(get_DefaultContainer)(THIS_ BSTR FAR* retval);\ STDMETHOD(put_DefaultContainer)(THIS_ BSTR bstrDefaultContainer); /* IADsUser methods */ #define DECLARE_IADsUser_METHODS \ STDMETHOD(get_BadLoginAddress)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(get_BadLoginCount)(THIS_ long FAR* retval) ;\ STDMETHOD(get_LastLogin)(THIS_ DATE FAR* retval) ;\ STDMETHOD(get_LastLogoff)(THIS_ DATE FAR* retval) ;\ STDMETHOD(get_LastFailedLogin)(THIS_ DATE FAR* retval) ;\ STDMETHOD(get_PasswordLastChanged)(THIS_ DATE FAR* retval) ;\ STDMETHOD(get_Description)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_Description)(THIS_ BSTR bstrDescription) ;\ STDMETHOD(get_Division)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_Division)(THIS_ BSTR bstrDivision) ;\ STDMETHOD(get_Department)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_Department)(THIS_ BSTR bstrDepartment) ;\ STDMETHOD(get_EmployeeID)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_EmployeeID)(THIS_ BSTR bstrEmployeeID) ;\ STDMETHOD(get_FullName)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_FullName)(THIS_ BSTR bstrFullName) ;\ STDMETHOD(get_FirstName)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_FirstName)(THIS_ BSTR bstrFirstName) ;\ STDMETHOD(get_LastName)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_LastName)(THIS_ BSTR bstrLastName) ;\ STDMETHOD(get_OtherName)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_OtherName)(THIS_ BSTR bstrOtherName) ;\ STDMETHOD(get_NamePrefix)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_NamePrefix)(THIS_ BSTR bstrNamePrefix) ;\ STDMETHOD(get_NameSuffix)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_NameSuffix)(THIS_ BSTR bstrNameSuffix) ;\ STDMETHOD(get_Title)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_Title)(THIS_ BSTR bstrTitle) ;\ STDMETHOD(get_Manager)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_Manager)(THIS_ BSTR bstrManager) ;\ STDMETHOD(get_TelephoneNumber)(THIS_ VARIANT FAR* retval) ;\ STDMETHOD(put_TelephoneNumber)(THIS_ VARIANT vTelephoneNumber) ;\ STDMETHOD(get_TelephoneHome)(THIS_ VARIANT FAR* retval) ;\ STDMETHOD(put_TelephoneHome)(THIS_ VARIANT vTelephoneHome );\ STDMETHOD(get_TelephoneMobile)(THIS_ VARIANT FAR* retval) ;\ STDMETHOD(put_TelephoneMobile)(THIS_ VARIANT vTelephoneMobile) ;\ STDMETHOD(get_TelephonePager)(THIS_ VARIANT FAR* retval) ;\ STDMETHOD(put_TelephonePager)(THIS_ VARIANT vTelephonePager) ;\ STDMETHOD(get_FaxNumber)(THIS_ VARIANT FAR* retval) ;\ STDMETHOD(put_FaxNumber)(THIS_ VARIANT vFaxNumber) ;\ STDMETHOD(get_OfficeLocations)(THIS_ VARIANT FAR* retval) ;\ STDMETHOD(put_OfficeLocations)(THIS_ VARIANT vOfficeLocation) ;\ STDMETHOD(get_PostalAddresses)(THIS_ VARIANT FAR* retval) ;\ STDMETHOD(put_PostalAddresses)(THIS_ VARIANT vPostalAddresses) ;\ STDMETHOD(get_PostalCodes)(THIS_ VARIANT FAR* retval) ;\ STDMETHOD(put_PostalCodes)(THIS_ VARIANT vPostalCodes) ;\ STDMETHOD(get_SeeAlso)(THIS_ VARIANT FAR* retval) ;\ STDMETHOD(put_SeeAlso)(THIS_ VARIANT vSeeAlso) ;\ STDMETHOD(get_AccountDisabled)(THIS_ VARIANT_BOOL FAR* retval) ;\ STDMETHOD(put_AccountDisabled)(THIS_ VARIANT_BOOL fAccountDisabled) ;\ STDMETHOD(get_AccountExpirationDate)(THIS_ DATE FAR* retval) ;\ STDMETHOD(put_AccountExpirationDate)(THIS_ DATE daAccountExpirationDate) ;\ STDMETHOD(get_GraceLoginsAllowed)(THIS_ long FAR* retval) ;\ STDMETHOD(put_GraceLoginsAllowed)(THIS_ long lnGraceLoginsAllowed) ;\ STDMETHOD(get_GraceLoginsRemaining)(THIS_ long FAR* retval) ;\ STDMETHOD(put_GraceLoginsRemaining)(THIS_ long lnGraceLoginsRemaining) ;\ STDMETHOD(get_IsAccountLocked)(THIS_ VARIANT_BOOL FAR* retval) ;\ STDMETHOD(put_IsAccountLocked)(THIS_ VARIANT_BOOL fIsAccountLocked) ;\ STDMETHOD(get_LoginHours)(THIS_ VARIANT FAR* retval) ;\ STDMETHOD(put_LoginHours)(THIS_ VARIANT vLoginHours) ;\ STDMETHOD(get_LoginWorkstations)(THIS_ VARIANT FAR* retval) ;\ STDMETHOD(put_LoginWorkstations)(THIS_ VARIANT vLoginWorkstations) ;\ STDMETHOD(get_MaxLogins)(THIS_ long FAR* retval) ;\ STDMETHOD(put_MaxLogins)(THIS_ long lnMaxLogins) ;\ STDMETHOD(get_MaxStorage)(THIS_ long FAR* retval) ;\ STDMETHOD(put_MaxStorage)(THIS_ long lnMaxStorage) ;\ STDMETHOD(get_PasswordExpirationDate)(THIS_ DATE FAR* retval) ;\ STDMETHOD(put_PasswordExpirationDate)(THIS_ DATE daPasswordExpirationDate) ;\ STDMETHOD(get_PasswordMinimumLength)(THIS_ long FAR* retval) ;\ STDMETHOD(put_PasswordMinimumLength)(THIS_ long lnPasswordMinimumLength) ;\ STDMETHOD(get_PasswordRequired)(THIS_ VARIANT_BOOL FAR* retval) ;\ STDMETHOD(put_PasswordRequired)(THIS_ VARIANT_BOOL fPasswordRequired) ;\ STDMETHOD(get_RequireUniquePassword)(THIS_ VARIANT_BOOL FAR* retval) ;\ STDMETHOD(put_RequireUniquePassword)(THIS_ VARIANT_BOOL fRequireUniquePassword) ;\ STDMETHOD(get_EmailAddress)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_EmailAddress)(THIS_ BSTR bstrEmailAddress) ;\ STDMETHOD(get_HomeDirectory)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_HomeDirectory)(THIS_ BSTR bstrHomeDirectory) ;\ STDMETHOD(get_Languages)(THIS_ VARIANT FAR* retval) ;\ STDMETHOD(put_Languages)(THIS_ VARIANT vLanguages) ;\ STDMETHOD(get_Profile)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_Profile)(THIS_ BSTR bstrProfile) ;\ STDMETHOD(get_LoginScript)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_LoginScript)(THIS_ BSTR bstrLoginScript) ;\ STDMETHOD(get_Picture)(THIS_ VARIANT FAR* retval) ;\ STDMETHOD(put_Picture)(THIS_ VARIANT vPicture) ;\ STDMETHOD(get_HomePage)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_HomePage)(THIS_ BSTR bstrHomePage) ;\ STDMETHOD(Groups)(THIS_ IADsMembers FAR* FAR* ppGroups) ;\ STDMETHOD(SetPassword)(THIS_ BSTR NewPassword) ;\ STDMETHOD(ChangePassword)(THIS_ BSTR bstrOldPassword, BSTR bstrNewPassword) ;\ /* IADsDomain methods */ #define DECLARE_IADsDomain_METHODS \ STDMETHOD(get_MinPasswordLength)(THIS_ long FAR* retval) ;\ STDMETHOD(put_MinPasswordLength)(THIS_ long lnMinPasswordLength) ;\ STDMETHOD(get_MinPasswordAge)(THIS_ long FAR* retval) ;\ STDMETHOD(put_MinPasswordAge)(THIS_ long lnMinPasswordAge) ;\ STDMETHOD(get_MaxPasswordAge)(THIS_ long FAR* retval) ;\ STDMETHOD(put_MaxPasswordAge)(THIS_ long lnMaxPasswordAge) ;\ STDMETHOD(get_MaxBadPasswordsAllowed)(THIS_ long FAR* retval) ;\ STDMETHOD(put_MaxBadPasswordsAllowed)(THIS_ long lnMaxBadPasswordsAllowed) ;\ STDMETHOD(get_PasswordHistoryLength)(THIS_ long FAR* retval) ;\ STDMETHOD(put_PasswordHistoryLength)(THIS_ long lnPasswordHistoryLength) ;\ STDMETHOD(get_PasswordAttributes)(THIS_ long FAR* retval) ;\ STDMETHOD(put_PasswordAttributes)(THIS_ long lnPasswordAttributes) ;\ STDMETHOD(get_AutoUnlockInterval)(THIS_ long FAR* retval) ;\ STDMETHOD(put_AutoUnlockInterval)(THIS_ long lnAutoUnlockInterval) ;\ STDMETHOD(get_LockoutObservationInterval)(THIS_ long FAR* retval) ;\ STDMETHOD(put_LockoutObservationInterval)(THIS_ long lnLockoutObservationInterval) ;\ STDMETHOD(get_IsWorkgroup)(THIS_ VARIANT_BOOL FAR* retval); /* IADsComputer methods */ #define DECLARE_IADsComputer_METHODS \ STDMETHOD(get_ComputerID)(THIS_ BSTR FAR* retval) ; \ STDMETHOD(get_Site)(THIS_ BSTR FAR* retval) ; \ STDMETHOD(get_Description)(THIS_ BSTR FAR* retval) ; \ STDMETHOD(put_Description)(THIS_ BSTR bstrDescription) ; \ STDMETHOD(get_Location)(THIS_ BSTR FAR* retval) ; \ STDMETHOD(put_Location)(THIS_ BSTR bstrLocation) ; \ STDMETHOD(get_PrimaryUser)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_PrimaryUser)(THIS_ BSTR bstrPrimaryUser) ;\ STDMETHOD(get_Owner)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_Owner)(THIS_ BSTR bstrOwner) ;\ STDMETHOD(get_Division)(THIS_ BSTR FAR* retval) ; \ STDMETHOD(put_Division)(THIS_ BSTR bstrDivision) ; \ STDMETHOD(get_Department)(THIS_ BSTR FAR* retval) ; \ STDMETHOD(put_Department)(THIS_ BSTR bstrDepartment) ; \ STDMETHOD(get_Role)(THIS_ BSTR FAR* retval) ; \ STDMETHOD(put_Role)(THIS_ BSTR bstrRole) ; \ STDMETHOD(get_OperatingSystem)(THIS_ BSTR FAR* retval); \ STDMETHOD(put_OperatingSystem)(THIS_ BSTR bstrOperatingSystem); \ STDMETHOD(get_OperatingSystemVersion)(THIS_ BSTR FAR* retval); \ STDMETHOD(put_OperatingSystemVersion)(THIS_ BSTR bstrOperatingSystemVersion); \ STDMETHOD(get_Model)(THIS_ BSTR FAR* retval) ; \ STDMETHOD(put_Model)(THIS_ BSTR bstrModel) ; \ STDMETHOD(get_Processor)(THIS_ BSTR FAR* retval) ; \ STDMETHOD(put_Processor)(THIS_ BSTR bstrProcessor) ; \ STDMETHOD(get_ProcessorCount)(THIS_ BSTR FAR* retval) ; \ STDMETHOD(put_ProcessorCount)(THIS_ BSTR bstrProcessorCount) ; \ STDMETHOD(get_MemorySize)(THIS_ BSTR FAR* retval) ; \ STDMETHOD(put_MemorySize)(THIS_ BSTR bstrMemorySize) ; \ STDMETHOD(get_StorageCapacity)(THIS_ BSTR FAR* retval) ; \ STDMETHOD(put_StorageCapacity)(THIS_ BSTR bstrStorageCapacity); \ STDMETHOD(get_NetAddresses)(THIS_ VARIANT FAR* retval); \ STDMETHOD(put_NetAddresses)(THIS_ VARIANT vNetAddresses); #define DECLARE_IADsComputerOperations_METHODS \ STDMETHOD(Status)(THIS_ IDispatch * FAR* ppObject) ; \ STDMETHOD(Shutdown)(THIS_ VARIANT_BOOL bReboot) ; #define DECLARE_IADsGroup_METHODS \ STDMETHOD(get_Description)(THIS_ BSTR FAR* retval) ; \ STDMETHOD(put_Description)(THIS_ BSTR bstrDescription) ; \ STDMETHOD(Members)(THIS_ IADsMembers FAR* FAR* ppMembers) ; \ STDMETHOD(IsMember)(THIS_ BSTR bstrMember, VARIANT_BOOL FAR* bMember) ;\ STDMETHOD(Add)(THIS_ BSTR bstrNewItem) ;\ STDMETHOD(Remove)(THIS_ BSTR bstrItemToBeRemoved) ; #define DECLARE_IADsMembers_METHODS \ STDMETHOD(get_Count)(THIS_ long FAR* plCount) ;\ STDMETHOD(get__NewEnum)(THIS_ IUnknown * FAR* ppEnumerator) ;\ STDMETHOD(get_Filter)(THIS_ VARIANT FAR* pvFilter) ;\ STDMETHOD(put_Filter)(THIS_ VARIANT pvFilter) ;\ #define DECLARE_IADsPrintQueue_METHODS \ STDMETHOD(get_Model)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_Model)(THIS_ BSTR bstrModel) ;\ STDMETHOD(get_Datatype)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_Datatype)(THIS_ BSTR bstrDatatype) ;\ STDMETHOD(get_Description)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_Description)(THIS_ BSTR bstrDescription) ;\ STDMETHOD(get_Location)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_Location)(THIS_ BSTR bstrLocation) ;\ STDMETHOD(get_Priority)(THIS_ long FAR* retval) ;\ STDMETHOD(put_Priority)(THIS_ long lnPriority) ;\ STDMETHOD(get_StartTime)(THIS_ DATE FAR* retval) ;\ STDMETHOD(put_StartTime)(THIS_ DATE daStartTime) ;\ STDMETHOD(get_UntilTime)(THIS_ DATE FAR* retval) ;\ STDMETHOD(put_UntilTime)(THIS_ DATE daUntilTime) ;\ STDMETHOD(get_DefaultJobPriority)(THIS_ long FAR* retval) ;\ STDMETHOD(put_DefaultJobPriority)(THIS_ long lnDefaultJobPriority) ;\ STDMETHOD(get_BannerPage)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_BannerPage)(THIS_ BSTR bstrBannerPage) ;\ STDMETHOD(get_PrinterPath)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_PrinterPath)(THIS_ BSTR bstrHostComputer) ;\ STDMETHOD(get_PrintProcessor)(THIS_ BSTR FAR* retval);\ STDMETHOD(put_PrintProcessor)(THIS_ BSTR bstrPrintProcessor);\ STDMETHOD(get_PrintDevices)(THIS_ VARIANT FAR* retval);\ STDMETHOD(put_PrintDevices)(THIS_ VARIANT vPorts);\ STDMETHOD(get_NetAddresses)(THIS_ VARIANT FAR* retval);\ STDMETHOD(put_NetAddresses)(THIS_ VARIANT vNetAddresses);\ #define DECLARE_IADsPrintQueueOperations_METHODS \ STDMETHOD(get_Status)(THIS_ long FAR* retval) ;\ STDMETHOD(PrintJobs)(THIS_ IADsCollection * FAR* ppObject) ;\ STDMETHOD(Pause)(THIS) ;\ STDMETHOD(Resume)(THIS) ;\ STDMETHOD(Purge)(THIS) ; #define DECLARE_IADsPrintJob_METHODS \ STDMETHOD(get_HostPrintQueue)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(get_User)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(get_UserPath)(THIS_ BSTR FAR* retval);\ STDMETHOD(get_Size)(THIS_ long FAR* retval) ;\ STDMETHOD(get_TimeSubmitted)(THIS_ DATE FAR* retval) ;\ STDMETHOD(get_TotalPages)(THIS_ long FAR* retval) ;\ STDMETHOD(get_Description)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_Description)(THIS_ BSTR bstrDescription) ;\ STDMETHOD(get_Priority)(THIS_ long FAR* retval) ;\ STDMETHOD(put_Priority)(THIS_ long lnPriority) ;\ STDMETHOD(get_StartTime)(THIS_ DATE FAR* retval) ;\ STDMETHOD(put_StartTime)(THIS_ DATE daStartTime) ;\ STDMETHOD(get_UntilTime)(THIS_ DATE FAR* retval) ;\ STDMETHOD(put_UntilTime)(THIS_ DATE daUntilTime) ;\ STDMETHOD(get_Notify)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_Notify)(THIS_ BSTR bstrNotify) ;\ STDMETHOD(get_NotifyPath)(THIS_ BSTR FAR* retval);\ STDMETHOD(put_NotifyPath)(THIS_ BSTR bstrNotifyPath);\ #define DECLARE_IADsPrintJobOperations_METHODS \ STDMETHOD(get_Position)(THIS_ long FAR* retval) ;\ STDMETHOD(put_Position)(THIS_ long lnPosition) ;\ STDMETHOD(get_TimeElapsed)(THIS_ long FAR* retval) ;\ STDMETHOD(get_PagesPrinted)(THIS_ long FAR* retval) ;\ STDMETHOD(get_Status)(THIS_ long FAR* retval) ;\ STDMETHOD(Pause)(THIS) ;\ STDMETHOD(Resume)(THIS) ;\ STDMETHOD(Remove)(THIS) ; #define DECLARE_IADsCollection_METHODS \ STDMETHOD(get__NewEnum)(THIS_ IUnknown * FAR* ppEnumerator) ;\ STDMETHOD(GetObject)(THIS_ BSTR bstrName, VARIANT FAR* pvItem);\ STDMETHOD(Add)(THIS_ BSTR bstrName, VARIANT vItem);\ STDMETHOD(Remove)(THIS_ BSTR bstrItemToBeRemoved); #define DECLARE_IEnumVARIANT_METHODS \ STDMETHOD(Next)(ULONG cElements, \ VARIANT FAR* pvar,\ ULONG FAR* pcElementFetched);\ STDMETHOD(Skip)(ULONG cElements);\ STDMETHOD(Reset)();\ STDMETHOD(Clone)(IEnumVARIANT FAR* FAR* ppenum); #define DECLARE_IADsService_METHODS \ STDMETHOD(get_HostComputer)(THIS_ BSTR FAR* pbstrHostComputer) ;\ STDMETHOD(put_HostComputer)(THIS_ BSTR bstrHostComputer) ;\ STDMETHOD(get_DisplayName)(THIS_ BSTR FAR* pbstrDisplayName) ;\ STDMETHOD(put_DisplayName)(THIS_ BSTR bstrDisplayName) ;\ STDMETHOD(get_Version)(THIS_ BSTR FAR* pbstrVersion) ;\ STDMETHOD(put_Version)(THIS_ BSTR bstrVersion) ;\ STDMETHOD(get_ServiceType)(THIS_ long FAR* plServiceType) ;\ STDMETHOD(put_ServiceType)(THIS_ long lServiceType) ;\ STDMETHOD(get_StartType)(THIS_ long FAR* plStartType) ;\ STDMETHOD(put_StartType)(THIS_ long lStartType) ;\ STDMETHOD(get_Path)(THIS_ BSTR FAR* pbstrPath) ;\ STDMETHOD(put_Path)(THIS_ BSTR bstrPath) ;\ STDMETHOD(get_StartupParameters)(THIS_ BSTR FAR* pbstrStartupParameters) ;\ STDMETHOD(put_StartupParameters)(THIS_ BSTR bstrStartupParameters) ;\ STDMETHOD(get_ErrorControl)(THIS_ long FAR* plErrorControl) ;\ STDMETHOD(put_ErrorControl)(THIS_ long lErrorControl) ;\ STDMETHOD(get_LoadOrderGroup)(THIS_ BSTR FAR* pbstrLoadOrderGroup) ;\ STDMETHOD(put_LoadOrderGroup)(THIS_ BSTR bstrLoadOrderGroup) ;\ STDMETHOD(get_ServiceAccountName)(THIS_ BSTR FAR* pbstrServiceAccountName) ;\ STDMETHOD(put_ServiceAccountName)(THIS_ BSTR bstrServiceAccountName) ;\ STDMETHOD(get_ServiceAccountPath)(THIS_ BSTR FAR* retval);\ STDMETHOD(put_ServiceAccountPath)(THIS_ BSTR bstrServiceAccountPath);\ STDMETHOD(get_Dependencies)(THIS_ VARIANT FAR* pv);\ STDMETHOD(put_Dependencies)(THIS_ VARIANT v); \ #define DECLARE_IADsServiceOperations_METHODS \ STDMETHOD(get_Status)(THIS_ long FAR* retval) ;\ STDMETHOD(SetPassword)(THIS_ BSTR bstrNewPassword) ;\ STDMETHOD(Start)(THIS) ;\ STDMETHOD(Stop)(THIS) ;\ STDMETHOD(Pause)(THIS) ;\ STDMETHOD(Continue)(THIS) ; #define DECLARE_IADsFileService_METHODS \ STDMETHOD(get_Description)(THIS_ BSTR FAR* pbstrDescription) ;\ STDMETHOD(put_Description)(THIS_ BSTR bstrDescription) ;\ STDMETHOD(get_MaxUserCount)(THIS_ long FAR* plMaxUserCount) ;\ STDMETHOD(put_MaxUserCount)(THIS_ long lMaxUserCount) ; #define DECLARE_IADsFileServiceOperations_METHODS \ STDMETHOD(Sessions)(THIS_ IADsCollection FAR* FAR* ppSessions) ;\ STDMETHOD(Resources)(THIS_ IADsCollection FAR* FAR* ppResources) ; #define DECLARE_IADsSession_METHODS \ STDMETHOD(get_User)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(get_UserPath)(THIS_ BSTR FAR* retval);\ STDMETHOD(get_Computer)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(get_ComputerPath)(THIS_ BSTR FAR* retval);\ STDMETHOD(get_ConnectTime)(THIS_ LONG FAR* retval) ;\ STDMETHOD(get_IdleTime)(THIS_ LONG FAR* retval) ; #define DECLARE_IADsFileShare_METHODS \ STDMETHOD(get_CurrentUserCount)(THIS_ LONG FAR* retval) ;\ STDMETHOD(get_Description)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_Description)(THIS_ BSTR bstrDescription) ;\ STDMETHOD(get_HostComputer)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_HostComputer)(THIS_ BSTR bstrHostComputer) ;\ STDMETHOD(get_Path)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_Path)(THIS_ BSTR bstrPath) ;\ STDMETHOD(get_MaxUserCount)(THIS_ LONG FAR* retval) ;\ STDMETHOD(put_MaxUserCount)(THIS_ LONG lMaxUserCount) ; #define DECLARE_IADsResource_METHODS \ STDMETHOD(get_User)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(get_UserPath)(THIS_ BSTR FAR* retval);\ STDMETHOD(get_Path)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(get_LockCount)(THIS_ long FAR* retval) ; #define DECLARE_IADsClass_METHODS \ STDMETHOD(get_PrimaryInterface)(THIS_ BSTR FAR* pbstrGUID) ;\ STDMETHOD(get_CLSID)(THIS_ BSTR FAR* pbstrCLSID) ;\ STDMETHOD(put_CLSID)(THIS_ BSTR bstrCLSID) ;\ STDMETHOD(get_OID)(THIS_ BSTR FAR* pbstrOID) ;\ STDMETHOD(put_OID)(THIS_ BSTR bstrOID) ;\ STDMETHOD(get_Abstract)(THIS_ VARIANT_BOOL FAR* pfAbstract) ;\ STDMETHOD(put_Abstract)(THIS_ VARIANT_BOOL fAbstract) ;\ STDMETHOD(get_Auxiliary)(THIS_ VARIANT_BOOL FAR* pfAuxiliary) ;\ STDMETHOD(put_Auxiliary)(THIS_ VARIANT_BOOL fAuxiliary) ;\ STDMETHOD(get_MandatoryProperties)(THIS_ VARIANT FAR* pvMandatoryProperties) ;\ STDMETHOD(put_MandatoryProperties)(THIS_ VARIANT vMandatoryProperties) ;\ STDMETHOD(get_OptionalProperties)(THIS_ VARIANT FAR* pvOptionalProperties) ;\ STDMETHOD(put_OptionalProperties)(THIS_ VARIANT vOptionalProperties) ;\ STDMETHOD(get_NamingProperties)(THIS_ VARIANT FAR* pvNamingProperties);\ STDMETHOD(put_NamingProperties)(THIS_ VARIANT vNamingProperties) ;\ STDMETHOD(get_DerivedFrom)(THIS_ VARIANT FAR* pvDerivedFrom) ;\ STDMETHOD(put_DerivedFrom)(THIS_ VARIANT vDerivedFrom) ;\ STDMETHOD(get_AuxDerivedFrom)(THIS_ VARIANT FAR* pvAuxDerivedFrom) ;\ STDMETHOD(put_AuxDerivedFrom)(THIS_ VARIANT vAuxDerivedFrom) ;\ STDMETHOD(get_PossibleSuperiors)(THIS_ VARIANT FAR* pvPossSuperiors);\ STDMETHOD(put_PossibleSuperiors)(THIS_ VARIANT vPossSuperiors) ;\ STDMETHOD(get_Containment)(THIS_ VARIANT FAR* pvContainment);\ STDMETHOD(put_Containment)(THIS_ VARIANT vContainment) ;\ STDMETHOD(get_Container)(THIS_ VARIANT_BOOL FAR* pfContainer);\ STDMETHOD(put_Container)(THIS_ VARIANT_BOOL fContainer) ;\ STDMETHOD(get_HelpFileName)(THIS_ BSTR FAR* pbstrHelpfile) ;\ STDMETHOD(put_HelpFileName)(THIS_ BSTR bstrHelpfile) ;\ STDMETHOD(get_HelpFileContext)(THIS_ long FAR* plHelpContext) ;\ STDMETHOD(put_HelpFileContext)(THIS_ long lHelpContext) ; \ STDMETHOD(Qualifiers)(THIS_ IADsCollection FAR* FAR* ppQualifiers) ; #define DECLARE_IADsProperty_METHODS \ STDMETHOD(get_OID)(THIS_ BSTR FAR* pbstrOID) ;\ STDMETHOD(put_OID)(THIS_ BSTR bstrOID) ;\ STDMETHOD(get_Syntax)(THIS_ BSTR FAR* pbstrSyntax) ;\ STDMETHOD(put_Syntax)(THIS_ BSTR bstrSyntax) ;\ STDMETHOD(get_MaxRange)(THIS_ long FAR* plMaxRange) ;\ STDMETHOD(put_MaxRange)(THIS_ long lMaxRange) ;\ STDMETHOD(get_MinRange)(THIS_ long FAR* plMinRange) ;\ STDMETHOD(put_MinRange)(THIS_ long lMinRange) ;\ STDMETHOD(get_MultiValued)(THIS_ VARIANT_BOOL FAR* pfMultiValued) ;\ STDMETHOD(put_MultiValued)(THIS_ VARIANT_BOOL fMultiValued) ;\ STDMETHOD(Qualifiers)(THIS_ IADsCollection FAR* FAR* ppQualifiers) ; #define DECLARE_IADsSyntax_METHODS \ STDMETHOD(get_OleAutoDataType)(THIS_ long FAR* plOleAutoDataType) ;\ STDMETHOD(put_OleAutoDataType)(THIS_ long lOleAutoDataType) ; #define DECLARE_IADsLocality_METHODS \ STDMETHOD(get_Description)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_Description)(THIS_ BSTR bstrDescription) ;\ STDMETHOD(get_LocalityName)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_LocalityName)(THIS_ BSTR bstrLocalityName) ;\ STDMETHOD(get_PostalAddress)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_PostalAddress)(THIS_ BSTR bstrPostalAddress) ;\ STDMETHOD(get_SeeAlso)(THIS_ VARIANT FAR* retval) ;\ STDMETHOD(put_SeeAlso)(THIS_ VARIANT vSeeAlso) ; #define DECLARE_IADsO_METHODS \ STDMETHOD(get_Description)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_Description)(THIS_ BSTR bstrDescription) ;\ STDMETHOD(get_LocalityName)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_LocalityName)(THIS_ BSTR bstrLocalityName) ;\ STDMETHOD(get_PostalAddress)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_PostalAddress)(THIS_ BSTR bstrPostalAddress) ;\ STDMETHOD(get_TelephoneNumber)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_TelephoneNumber)(THIS_ BSTR bstrTelephoneNumber) ;\ STDMETHOD(get_FaxNumber)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_FaxNumber)(THIS_ BSTR bstrFaxNumber) ;\ STDMETHOD(get_SeeAlso)(THIS_ VARIANT FAR* retval) ;\ STDMETHOD(put_SeeAlso)(THIS_ VARIANT vSeeAlso) ; #define DECLARE_IADsOU_METHODS \ STDMETHOD(get_Description)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_Description)(THIS_ BSTR bstrDescription) ;\ STDMETHOD(get_LocalityName)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_LocalityName)(THIS_ BSTR bstrLocalityName) ;\ STDMETHOD(get_PostalAddress)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_PostalAddress)(THIS_ BSTR bstrPostalAddress) ;\ STDMETHOD(get_TelephoneNumber)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_TelephoneNumber)(THIS_ BSTR bstrTelephoneNumber) ;\ STDMETHOD(get_FaxNumber)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_FaxNumber)(THIS_ BSTR bstrFaxNumber) ;\ STDMETHOD(get_SeeAlso)(THIS_ VARIANT FAR* retval) ;\ STDMETHOD(put_SeeAlso)(THIS_ VARIANT vSeeAlso) ;\ STDMETHOD(get_BusinessCategory)(THIS_ BSTR FAR* retval) ;\ STDMETHOD(put_BusinessCategory)(THIS_ BSTR bstrBusinessCategory) ; #define DECLARE_IADsOpenDSObject_METHODS \ STDMETHOD(OpenDSObject)( \ THIS_ BSTR lpszDNName, \ BSTR lpszUserName, \ BSTR lpszPassword, \ long lnReserved, \ IDispatch * * ppADsObj \ ); #define DECLARE_IDirectoryObject_METHODS \ STDMETHOD(GetObjectInformation)( \ THIS_ PADS_OBJECT_INFO * ppObjInfo \ ); \ \ STDMETHOD(GetObjectAttributes)( \ THIS_ LPWSTR * pAttributeNames, \ DWORD dwNumberAttributes, \ PADS_ATTR_INFO *ppAttributeEntries, \ DWORD * pdwNumAttributesReturned \ ); \ \ STDMETHOD(SetObjectAttributes)( \ THIS_ PADS_ATTR_INFO pAttributeEntries, \ DWORD dwNumAttributes, \ DWORD * pdwNumAttributesModified \ ); \ \ \ STDMETHOD(CreateDSObject)( \ THIS_ LPWSTR pszRDNName, \ PADS_ATTR_INFO pAttributeEntries, \ DWORD dwNumAttributes, \ IDispatch ** ppObject \ ); \ \ STDMETHOD(DeleteDSObject)( \ THIS_ LPWSTR pszRDNName \ ); #define DECLARE_IDirectorySearch_METHODS \ STDMETHOD(SetSearchPreference)( \ THIS_ PADS_SEARCHPREF_INFO pSearchPrefs, \ DWORD dwNumPrefs \ ); \ \ STDMETHOD(ExecuteSearch)( \ THIS_ LPWSTR pszSearchFilter, \ LPWSTR * pAttributeNames, \ DWORD dwNumberAttributes, \ PADS_SEARCH_HANDLE phSearchResult \ ); \ \ STDMETHOD(AbandonSearch)( \ ADS_SEARCH_HANDLE hSearchResult \ ); \ \ STDMETHOD(GetFirstRow)( \ THIS_ ADS_SEARCH_HANDLE hSearchResult \ ); \ \ STDMETHOD(GetNextRow)( \ THIS_ ADS_SEARCH_HANDLE hSearchResult \ ); \ \ \ STDMETHOD(GetPreviousRow)( \ THIS_ ADS_SEARCH_HANDLE hSearchResult \ ); \ \ STDMETHOD(GetNextColumnName)( \ THIS_ ADS_SEARCH_HANDLE hSearchResult, \ LPWSTR * ppszColumnName \ ); \ \ STDMETHOD(GetColumn)( \ THIS_ ADS_SEARCH_HANDLE hSearchResult, \ LPWSTR szColumnName, \ PADS_SEARCH_COLUMN pSearchColumn \ ); \ \ STDMETHOD(FreeColumn)( \ THIS_ PADS_SEARCH_COLUMN pSearchColumn \ ); \ \ STDMETHOD(CloseSearchHandle)( \ THIS_ ADS_SEARCH_HANDLE hSearchHandle \ ); #define DECLARE_IDirectorySchemaMgmt_METHODS \ STDMETHOD(EnumAttributes)( \ THIS_ LPWSTR * ppszAttrNames, \ DWORD dwNumAttributes, \ PADS_ATTR_DEF * ppAttrDefinition, \ DWORD * pdwNumAttributes \ ); \ \ STDMETHOD(CreateAttributeDefinition)( \ THIS_ LPWSTR pszAttributeName, \ PADS_ATTR_DEF pAttributeDefinition \ ); \ \ STDMETHOD(WriteAttributeDefinition)( \ THIS_ LPWSTR pszAttributeName, \ PADS_ATTR_DEF pAttributeDefinition \ ); \ \ STDMETHOD(DeleteAttributeDefinition)( \ THIS_ LPWSTR pszAttributeName \ ); \ \ STDMETHOD(EnumClasses)( \ THIS_ LPWSTR * ppszClassNames, \ DWORD dwNumClasses, \ PADS_CLASS_DEF * ppClassDefinition, \ DWORD * pdwNumClasses \ ); \ \ STDMETHOD(CreateClassDefinition)( \ THIS_ LPWSTR pszClassName, \ PADS_CLASS_DEF pClassDefinition \ ); \ \ STDMETHOD(WriteClassDefinition)( \ THIS_ LPWSTR pszClassName, \ PADS_CLASS_DEF pClassDefinition \ ); \ \ STDMETHOD(DeleteClassDefinition)( \ THIS_ LPWSTR pszClassName \ ); #define DECLARE_IADsPropertyList_METHODS \ STDMETHOD(get_PropertyCount)(THIS_ long FAR *plCount); \ STDMETHOD(Next)(THIS_ VARIANT FAR *pVariant); \ STDMETHOD(Skip)(THIS_ long cElements); \ STDMETHOD(Reset)(void); \ STDMETHOD(ResetPropertyItem)(THIS_ VARIANT varEntry); \ STDMETHOD(GetPropertyItem)(THIS_ BSTR bstrName, LONG lnADsType, VARIANT * pVariant); \ STDMETHOD(PutPropertyItem)(THIS_ VARIANT varData); \ STDMETHOD(PurgePropertyList)(); \ STDMETHOD(Item)(THIS_ VARIANT varIndex, VARIANT * pVariant); #define DECLARE_IADsPropertyEntry_METHODS \ STDMETHOD(Clear)(); \ STDMETHOD(get_Name)(THIS_ BSTR *retval); \ STDMETHOD(put_Name)(THIS_ BSTR bstrName); \ STDMETHOD(get_ADsType)(THIS_ long *retval); \ STDMETHOD(put_ADsType)(THIS_ long lnValueCount); \ STDMETHOD(get_ControlCode)(THIS_ long *retval); \ STDMETHOD(put_ControlCode)(THIS_ long lnControlCode); \ STDMETHOD(get_ValueCount)(THIS_ long *retval); \ STDMETHOD(put_ValueCount)(THIS_ long lnValueCount); \ STDMETHOD(get_Values)(THIS_ VARIANT *retval); \ STDMETHOD(put_Values)(THIS_ VARIANT vValues); #define DECLARE_IADsAggregate_METHODS \ STDMETHOD(ConnectAsAggregatee)(THIS_ IUnknown * pOuterUnknown); \ STDMETHOD(DisconnectAsAggregatee)(void); \ STDMETHOD(RelinquishInterface)(THIS_ REFIID riid); \ STDMETHOD(RestoreInterface)(THIS_ REFIID riid); #define DECLARE_IADsAccessControlEntry_METHODS \ STDMETHOD(get_AccessMask)(THIS_ long FAR* retval) ; \ STDMETHOD(put_AccessMask)(THIS_ long lnAceMask) ; \ STDMETHOD(get_AceType)(THIS_ long FAR* retval) ; \ STDMETHOD(put_AceType)(THIS_ long lnAceType) ; \ STDMETHOD(get_AceFlags)(THIS_ long FAR* retval) ; \ STDMETHOD(put_AceFlags)(THIS_ long lnAceFlags) ; \ STDMETHOD(get_Flags)(THIS_ long FAR* retval) ; \ STDMETHOD(put_Flags)(THIS_ long lnFlags) ; \ STDMETHOD(get_ObjectType)(THIS_ BSTR FAR* retval); \ STDMETHOD(put_ObjectType)(THIS_ BSTR bstrObjectType); \ STDMETHOD(get_InheritedObjectType)(THIS_ BSTR FAR* retval); \ STDMETHOD(put_InheritedObjectType)(THIS_ BSTR bstrInheritedObjectType); \ STDMETHOD(get_Trustee)(THIS_ BSTR FAR* retval); \ STDMETHOD(put_Trustee)(THIS_ BSTR bstrTrustee); #define DECLARE_IADsAccessControlList_METHODS \ STDMETHOD(get_AceCount)(THIS_ long FAR* retval) ; \ STDMETHOD(put_AceCount)(THIS_ long lnAceCount) ; \ STDMETHOD(get_AclRevision)(THIS_ long FAR* retval) ; \ STDMETHOD(put_AclRevision)(THIS_ long lnAclRevision) ; \ STDMETHOD(AddAce)(THIS_ IDispatch * pAccessControlEntry); \ STDMETHOD(RemoveAce)(THIS_ IDispatch * pAccessControlEntry); \ STDMETHOD(CopyAccessList)(THIS_ IDispatch FAR * FAR * ppAccessControlList); \ STDMETHOD(get__NewEnum)(THIS_ IUnknown * FAR* retval) ; #define DECLARE_IADsSecurityDescriptor_METHODS \ STDMETHOD(get_Revision)(THIS_ long FAR* retval) ; \ STDMETHOD(put_Revision)(THIS_ long lnRevision) ; \ STDMETHOD(get_Control)(THIS_ long FAR* retval) ; \ STDMETHOD(put_Control)(THIS_ long lnControl) ; \ STDMETHOD(get_Owner)(THIS_ BSTR FAR* retval); \ STDMETHOD(put_Owner)(THIS_ BSTR bstrOwner); \ STDMETHOD(get_OwnerDefaulted)(THIS_ VARIANT_BOOL FAR* retval) ; \ STDMETHOD(put_OwnerDefaulted)(THIS_ VARIANT_BOOL fOwnerDefaulted) ; \ STDMETHOD(get_Group)(THIS_ BSTR FAR* retval); \ STDMETHOD(put_Group)(THIS_ BSTR bstrGroup); \ STDMETHOD(get_GroupDefaulted)(THIS_ VARIANT_BOOL FAR* retval) ; \ STDMETHOD(put_GroupDefaulted)(THIS_ VARIANT_BOOL fGroupDefaulted) ; \ STDMETHOD(get_DiscretionaryAcl)(THIS_ IDispatch ** retval); \ STDMETHOD(put_DiscretionaryAcl)(THIS_ IDispatch * pDiscretionaryAcl); \ STDMETHOD(get_DaclDefaulted)(THIS_ VARIANT_BOOL FAR* retval) ; \ STDMETHOD(put_DaclDefaulted)(THIS_ VARIANT_BOOL fDaclDefaulted) ; \ STDMETHOD(get_SystemAcl)(THIS_ IDispatch ** retval); \ STDMETHOD(put_SystemAcl)(THIS_ IDispatch * pSystemAcl); \ STDMETHOD(get_SaclDefaulted)(THIS_ VARIANT_BOOL FAR* retval) ; \ STDMETHOD(put_SaclDefaulted)(THIS_ VARIANT_BOOL fSaclDefaulted) ; \ STDMETHOD(CopySecurityDescriptor)(THIS_ IDispatch ** ppSecurityDescriptor); #define DECLARE_IADsPropertyValue_METHODS \ STDMETHOD(Clear)(); \ STDMETHOD(get_ADsType)(THIS_ long *retval); \ STDMETHOD(put_ADsType)(THIS_ long lnValueCount); \ STDMETHOD(get_DNString)(THIS_ BSTR *retval); \ STDMETHOD(put_DNString)(THIS_ BSTR bstrDNString); \ STDMETHOD(get_CaseExactString)(THIS_ BSTR *retval); \ STDMETHOD(put_CaseExactString)(THIS_ BSTR bstrCaseExactString); \ STDMETHOD(get_CaseIgnoreString)(THIS_ BSTR *retval); \ STDMETHOD(put_CaseIgnoreString)(THIS_ BSTR bstrCaseIgnoreString); \ STDMETHOD(get_PrintableString)(THIS_ BSTR *retval); \ STDMETHOD(put_PrintableString)(THIS_ BSTR bstrPrintableString); \ STDMETHOD(get_NumericString)(THIS_ BSTR *retval); \ STDMETHOD(put_NumericString)(THIS_ BSTR bstrNumericString); \ STDMETHOD(get_OctetString)(THIS_ VARIANT *retval); \ STDMETHOD(put_OctetString)(THIS_ VARIANT bstrOctetString); \ STDMETHOD(get_Integer)(THIS_ LONG *retval); \ STDMETHOD(put_Integer)(THIS_ LONG lnInteger); \ STDMETHOD(get_Boolean)(THIS_ LONG *retval); \ STDMETHOD(put_Boolean)(THIS_ LONG lnBoolean); \ STDMETHOD(get_SecurityDescriptor)(THIS_ IDispatch FAR * FAR *retval); \ STDMETHOD(put_SecurityDescriptor)(THIS_ IDispatch FAR * lnSecurityDescriptor);\ STDMETHOD(get_LargeInteger)(THIS_ IDispatch FAR * FAR *retval); \ STDMETHOD(put_LargeInteger)(THIS_ IDispatch FAR* lnLargeInteger); \ STDMETHOD(get_CaseIgnoreList)(THIS_ IDispatch FAR * FAR *retval); \ STDMETHOD(put_CaseIgnoreList)(THIS_ IDispatch FAR* lnLargeInteger); \ STDMETHOD(get_FaxNumber)(THIS_ IDispatch FAR * FAR *retval); \ STDMETHOD(put_FaxNumber)(THIS_ IDispatch FAR* lnLargeInteger); \ STDMETHOD(get_NetAddress)(THIS_ IDispatch FAR * FAR *retval); \ STDMETHOD(put_NetAddress)(THIS_ IDispatch FAR* lnLargeInteger); \ STDMETHOD(get_OctetList)(THIS_ IDispatch FAR * FAR *retval); \ STDMETHOD(put_OctetList)(THIS_ IDispatch FAR* lnLargeInteger); \ STDMETHOD(get_Email)(THIS_ IDispatch FAR * FAR *retval); \ STDMETHOD(put_Email)(THIS_ IDispatch FAR* lnLargeInteger); \ STDMETHOD(get_Path)(THIS_ IDispatch FAR * FAR *retval); \ STDMETHOD(put_Path)(THIS_ IDispatch FAR* lnLargeInteger); \ STDMETHOD(get_ReplicaPointer)(THIS_ IDispatch FAR * FAR *retval); \ STDMETHOD(put_ReplicaPointer)(THIS_ IDispatch FAR* lnLargeInteger); \ STDMETHOD(get_Timestamp)(THIS_ IDispatch FAR * FAR *retval); \ STDMETHOD(put_Timestamp)(THIS_ IDispatch FAR* lnLargeInteger); \ STDMETHOD(get_PostalAddress)(THIS_ IDispatch FAR * FAR *retval); \ STDMETHOD(put_PostalAddress)(THIS_ IDispatch FAR* lnLargeInteger); \ STDMETHOD(get_BackLink)(THIS_ IDispatch FAR * FAR *retval); \ STDMETHOD(put_BackLink)(THIS_ IDispatch FAR* lnLargeInteger); \ STDMETHOD(get_TypedName)(THIS_ IDispatch FAR * FAR *retval); \ STDMETHOD(put_TypedName)(THIS_ IDispatch FAR* lnLargeInteger); \ STDMETHOD(get_Hold)(THIS_ IDispatch FAR * FAR *retval); \ STDMETHOD(put_Hold)(THIS_ IDispatch FAR* lnLargeInteger); \ STDMETHOD(get_UTCTime)(THIS_ DATE *retval); \ STDMETHOD(put_UTCTime)(THIS_ DATE DateInDate); \ STDMETHOD(GetObjectProperty)(THIS_ long *lnControlCode, VARIANT FAR* pvProp); \ STDMETHOD(PutObjectProperty)(THIS_ long lnControlCode, VARIANT vProp); #define DECLARE_IADsValue_METHODS \ STDMETHOD(ConvertADsValueToPropertyValue)(THIS_ PADSVALUE pADsValue); \ STDMETHOD(ConvertPropertyValueToADsValue)(THIS_ PADSVALUE pADsValue); #define DECLARE_IADsPathname_METHODS \ STDMETHOD(Set)(THIS_ BSTR bstrADsPath, long dwSetType); \ STDMETHOD(SetDisplayType)(THIS_ long lnDisplayType); \ STDMETHOD(Retrieve)(THIS_ long dwFormatType, BSTR FAR *pbstrADsPath); \ STDMETHOD(GetNumElements)(THIS_ long FAR *pdwNumPathElements); \ STDMETHOD(GetElement)(THIS_ long dwElementIndex, BSTR FAR *pbstrElement); \ STDMETHOD(AddLeafElement)(THIS_ BSTR bstrLeafElement); \ STDMETHOD(RemoveLeafElement)(void); \ STDMETHOD(CopyPath)(THIS_ IDispatch **ppAdsPath); \ STDMETHOD(GetEscapedElement)(THIS_ long lnReserved, BSTR bstrInStr, BSTR FAR* pbstrOutStr); \ STDMETHOD(get_EscapedMode)(THIS_ long * pdwFlags); \ STDMETHOD(put_EscapedMode)(THIS_ long dwFlags); #define DECLARE_IADsADSystemInfo_METHODS \ STDMETHOD(get_UserName)(THIS_ BSTR FAR* retval); \ STDMETHOD(get_ComputerName)(THIS_ BSTR FAR* retval); \ STDMETHOD(get_SiteName)(THIS_ BSTR FAR* retval); \ STDMETHOD(get_DomainShortName)(THIS_ BSTR FAR* retval); \ STDMETHOD(get_DomainDNSName)(THIS_ BSTR FAR* retval); \ STDMETHOD(get_ForestDNSName)(THIS_ BSTR FAR* retval); \ STDMETHOD(get_PDCRoleOwner)(THIS_ BSTR FAR* retval); \ STDMETHOD(get_SchemaRoleOwner)(THIS_ BSTR FAR* retval); \ STDMETHOD(get_IsNativeMode)(THIS_ VARIANT_BOOL FAR* retval); \ STDMETHOD(GetAnyDCName)(THIS_ BSTR FAR* retval); \ STDMETHOD(GetDCSiteName)(THIS_ BSTR pszServer, BSTR FAR* retval); \ STDMETHOD(RefreshSchemaCache)(THIS); \ STDMETHOD(GetTrees)(THIS_ VARIANT FAR* pvTrees); #define DECLARE_IADsWinNTSystemInfo_METHODS \ STDMETHOD(get_UserName)(THIS_ BSTR FAR* retval); \ STDMETHOD(get_ComputerName)(THIS_ BSTR FAR* retval); \ STDMETHOD(get_DomainName)(THIS_ BSTR FAR* retval); \ STDMETHOD(get_PDC)(THIS_ BSTR FAR* retval); #define DECLARE_IADsLargeInteger_METHODS \ STDMETHOD(get_HighPart)(THIS_ LONG *retval); \ STDMETHOD(put_HighPart)(THIS_ LONG lnHighPart); \ STDMETHOD(get_LowPart)(THIS_ LONG *retval); \ STDMETHOD(put_LowPart)(THIS_ LONG lnLowPart); #define DECLARE_IADsDNWithBinary_METHODS \ STDMETHOD(get_BinaryValue)(THIS_ VARIANT FAR* pvBinaryValue); \ STDMETHOD(put_BinaryValue)(THIS_ VARIANT vBinaryValue); \ STDMETHOD(get_DNString)(THIS_ BSTR FAR* bstrDNString); \ STDMETHOD(put_DNString)(THIS_ BSTR bstrDNString); #define DECLARE_IADsDNWithString_METHODS \ STDMETHOD(get_StringValue)(THIS_ BSTR FAR* pbstrValue); \ STDMETHOD(put_StringValue)(THIS_ BSTR bstrValue); \ STDMETHOD(get_DNString)(THIS_ BSTR FAR* pbstrDNString); \ STDMETHOD(put_DNString)(THIS_ BSTR bstrDNString); #define DECLARE_IADsAcl_METHODS \ STDMETHOD(get_Privileges)(THIS_ long FAR* retval) ; \ STDMETHOD(put_Privileges)(THIS_ long lnPrivileges) ; \ STDMETHOD(get_SubjectName)(THIS_ BSTR FAR* retval); \ STDMETHOD(put_SubjectName)(THIS_ BSTR bstrSubjectName); \ STDMETHOD(get_ProtectedAttrName)(THIS_ BSTR FAR* retval); \ STDMETHOD(put_ProtectedAttrName)(THIS_ BSTR bstrProtectedAttrName); \ STDMETHOD(CopyAcl)(THIS_ IDispatch ** ppAcl); #define DECLARE_IADsObjectOptions_METHODS \ STDMETHOD(GetOption)(THIS_ long lnControlCode, VARIANT FAR* pvProp); \ STDMETHOD(SetOption)(THIS_ long lnControlCode, VARIANT vProp); #define DECLARE_IADsObjOptPrivate_METHODS \ STDMETHOD(GetOption)(THIS_ DWORD dwOptions, void *pValue); \ STDMETHOD(SetOption)(THIS_ DWORD dwOptions, void *pValue); #define DECLARE_IPrivateUnknown_METHODS \ STDMETHOD(ADSIInitializeObject)( \ THIS_ BSTR lpszUserName, \ BSTR lpszPassword, \ long lnReserved \ ); \ STDMETHOD(ADSIReleaseObject)(); #define DECLARE_IPrivateDispatch_METHODS \ STDMETHOD(ADSIInitializeDispatchManager)(THIS_ long dwExtensionId) ;\ STDMETHOD(ADSIGetTypeInfoCount)(THIS_ UINT FAR* pctinfo) ; \ \ STDMETHOD(ADSIGetTypeInfo)(\ THIS_ \ UINT itinfo,\ LCID lcid,\ ITypeInfo FAR* FAR* pptinfo) ;\ \ STDMETHOD(ADSIGetIDsOfNames)( \ THIS_ \ REFIID riid,\ OLECHAR FAR* FAR* rgszNames,\ UINT cNames,\ LCID lcid, \ DISPID FAR* rgdispid) ;\ \ STDMETHOD(ADSIInvoke)(\ THIS_\ DISPID dispidMember,\ REFIID riid,\ LCID lcid,\ WORD wFlags,\ DISPPARAMS FAR* pdispparams,\ VARIANT FAR* pvarResult,\ EXCEPINFO FAR* pexcepinfo,\ UINT FAR* puArgErr) ; #define DECLARE_IADsDeleteOps_METHODS \ STDMETHOD(DeleteObject)(THIS_ long lnFlags); #define DECLARE_IADsExtension_METHODS \ STDMETHOD(Operate)( \ THIS_ \ DWORD dwCode, \ VARIANT varUserName, \ VARIANT varPassword, \ VARIANT varReserved \ ); \ \ STDMETHOD(PrivateGetIDsOfNames)( \ THIS_ \ REFIID riid, \ OLECHAR FAR* FAR* rgszNames, \ unsigned int cNames, \ LCID lcid, \ DISPID FAR* rgdispid) ; \ \ STDMETHOD(PrivateInvoke)( \ THIS_ \ DISPID dispidMember, \ REFIID riid, \ LCID lcid, \ WORD wFlags, \ DISPPARAMS FAR* pdispparams, \ VARIANT FAR* pvarResult, \ EXCEPINFO FAR* pexcepinfo, \ unsigned int FAR* puArgErr \ ) ;