home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / netds / adsi / sampprov / intf.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-07-29  |  26.2 KB  |  524 lines

  1. /*++s 
  2.  
  3. Copyright (c) 1996 Microsoft Corporation
  4.  
  5. Module Name:
  6.  
  7.     IntF.cpp
  8.  
  9. Abstract:
  10.  
  11.     Interface for ADS
  12.  
  13. Author:
  14.  
  15. Environment:
  16.  
  17.     User mode
  18.  
  19. Revision History :
  20.  
  21. --*/
  22. #ifndef _INTF_H_
  23. #define _INTF_H_
  24.  
  25. #define DECLARE_IUnknown_METHODS \
  26.         STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ;
  27.  
  28. #define DECLARE_IDispatch_METHODS \
  29.         STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) ; \
  30.         \
  31.         STDMETHOD(GetTypeInfo)(\
  32.         THIS_ \
  33.         UINT itinfo,\
  34.         LCID lcid,\
  35.         ITypeInfo FAR* FAR* pptinfo) ;\
  36.         \
  37.         STDMETHOD(GetIDsOfNames)( \
  38.         THIS_ \
  39.         REFIID riid,\
  40.         OLECHAR FAR* FAR* rgszNames,\
  41.         UINT cNames,\
  42.         LCID lcid, \
  43.         DISPID FAR* rgdispid) ;\
  44.         \
  45.         STDMETHOD(Invoke)(\
  46.         THIS_\
  47.         DISPID dispidMember,\
  48.         REFIID riid,\
  49.         LCID lcid,\
  50.         WORD wFlags,\
  51.         DISPPARAMS FAR* pdispparams,\
  52.         VARIANT FAR* pvarResult,\
  53.         EXCEPINFO FAR* pexcepinfo,\
  54.         UINT FAR* puArgErr) ;
  55.  
  56. #define DECLARE_IADs_METHODS  \
  57.         STDMETHOD(get_Name)(THIS_ BSTR FAR* retval) ;        \
  58.         STDMETHOD(get_ADsPath)(THIS_ BSTR FAR* retval); \
  59.         STDMETHOD(get_GUID)(THIS_ BSTR FAR* retval) ;\
  60.         STDMETHOD(get_Class)(THIS_ BSTR FAR* retval);\
  61.         STDMETHOD(get_Parent)(THIS_ BSTR FAR* retval);\
  62.         STDMETHOD(get_Schema)(THIS_ BSTR FAR* retval);\
  63.         STDMETHOD(SetInfo)(THIS) ;                           \
  64.         STDMETHOD(GetInfo)(THIS) ; \
  65.         STDMETHOD(Get)(THIS_ BSTR bstrName, VARIANT FAR* pvProp) ; \
  66.         STDMETHOD(Put)(THIS_ BSTR bstrName, VARIANT vProp) ;        \
  67.         STDMETHOD(GetEx)(THIS_ BSTR bstrName, VARIANT FAR* pvProp) ; \
  68.         STDMETHOD(PutEx)(THIS_ long lnControlCode, BSTR bstrName, VARIANT vProp) ; \
  69.         STDMETHOD(GetInfoEx)(THIS_ VARIANT vProperties, long lnReserved);
  70.  
  71.  
  72. #define DECLARE_IADsStatus_METHODS\
  73.     STDMETHOD(get_Code)(THIS_ long FAR* plStatusCode);\
  74.     STDMETHOD(get_String)(THIS_ BSTR FAR* pbstrStatusString);
  75.  
  76.  
  77. #define DECLARE_IADsContainer_METHODS \
  78.         STDMETHOD(get_Count)(THIS_ long FAR* retval) ;      \
  79.         STDMETHOD(get_Filter)(THIS_ VARIANT FAR* pVar) ;    \
  80.         STDMETHOD(put_Filter)(THIS_ VARIANT Var) ;          \
  81.         STDMETHOD(get_Hints)(THIS_ VARIANT FAR* pvFilter);  \
  82.         STDMETHOD(put_Hints)(THIS_ VARIANT vHints)       ;  \
  83.         STDMETHOD(GetObject)(THIS_ BSTR ClassName, BSTR RelativeName, IDispatch * FAR* ppObject) ;\
  84.         STDMETHOD(get__NewEnum)(THIS_ IUnknown * FAR* retval) ; \
  85.         STDMETHOD(Create)(THIS_ BSTR ClassName, BSTR RelativeName, IDispatch * FAR* ppObject) ;\
  86.         STDMETHOD(Delete)(THIS_ BSTR bstrClassName, BSTR bstrRelativeName) ;\
  87.         STDMETHOD(CopyHere)(THIS_ BSTR SourceName, BSTR NewName, IDispatch * FAR* ppObject) ;\
  88.         STDMETHOD(MoveHere)(THIS_ BSTR SourceName, BSTR NewName, IDispatch * FAR* ppObject) ;
  89.  
  90. #define DECLARE_IADsNamespaces_METHODS \
  91.     STDMETHOD(get_DefaultContainer)(THIS_ BSTR FAR* retval);\
  92.     STDMETHOD(put_DefaultContainer)(THIS_ BSTR bstrDefaultContainer);
  93.  
  94. /* IADsUser methods */
  95. #define DECLARE_IADsUser_METHODS      \
  96.    STDMETHOD(get_BadLoginAddress)(THIS_ BSTR FAR* retval) ;\
  97.     STDMETHOD(get_BadLoginCount)(THIS_ long FAR* retval) ;\
  98.     STDMETHOD(get_LastLogin)(THIS_ DATE FAR* retval) ;\
  99.     STDMETHOD(get_LastLogoff)(THIS_ DATE FAR* retval) ;\
  100.     STDMETHOD(get_LastFailedLogin)(THIS_ DATE FAR* retval) ;\
  101.     STDMETHOD(get_PasswordLastChanged)(THIS_ DATE FAR* retval) ;\
  102.     STDMETHOD(get_Description)(THIS_ BSTR FAR* retval) ;\
  103.     STDMETHOD(put_Description)(THIS_ BSTR bstrDescription) ;\
  104.     STDMETHOD(get_Division)(THIS_ BSTR FAR* retval) ;\
  105.     STDMETHOD(put_Division)(THIS_ BSTR bstrDivision) ;\
  106.     STDMETHOD(get_Department)(THIS_ BSTR FAR* retval) ;\
  107.     STDMETHOD(put_Department)(THIS_ BSTR bstrDepartment) ;\
  108.     STDMETHOD(get_EmployeeID)(THIS_ BSTR FAR* retval) ;\
  109.     STDMETHOD(put_EmployeeID)(THIS_ BSTR bstrEmployeeID) ;\
  110.     STDMETHOD(get_FullName)(THIS_ BSTR FAR* retval) ;\
  111.     STDMETHOD(put_FullName)(THIS_ BSTR bstrFullName) ;\
  112.     STDMETHOD(get_FirstName)(THIS_ BSTR FAR* retval) ;\
  113.     STDMETHOD(put_FirstName)(THIS_ BSTR bstrFirstName) ;\
  114.     STDMETHOD(get_LastName)(THIS_ BSTR FAR* retval) ;\
  115.     STDMETHOD(put_LastName)(THIS_ BSTR bstrLastName) ;\
  116.     STDMETHOD(get_OtherName)(THIS_ BSTR FAR* retval) ;\
  117.     STDMETHOD(put_OtherName)(THIS_ BSTR bstrOtherName) ;\
  118.     STDMETHOD(get_NamePrefix)(THIS_ BSTR FAR* retval) ;\
  119.     STDMETHOD(put_NamePrefix)(THIS_ BSTR bstrNamePrefix) ;\
  120.     STDMETHOD(get_NameSuffix)(THIS_ BSTR FAR* retval) ;\
  121.     STDMETHOD(put_NameSuffix)(THIS_ BSTR bstrNameSuffix) ;\
  122.     STDMETHOD(get_Title)(THIS_ BSTR FAR* retval) ;\
  123.     STDMETHOD(put_Title)(THIS_ BSTR bstrTitle) ;\
  124.     STDMETHOD(get_Manager)(THIS_ BSTR FAR* retval) ;\
  125.     STDMETHOD(put_Manager)(THIS_ BSTR bstrManager) ;\
  126.     STDMETHOD(get_TelephoneNumber)(THIS_ VARIANT FAR* retval) ;\
  127.     STDMETHOD(put_TelephoneNumber)(THIS_ VARIANT vTelephoneNumber) ;\
  128.     STDMETHOD(get_TelephoneHome)(THIS_ VARIANT FAR* retval) ;\
  129.     STDMETHOD(put_TelephoneHome)(THIS_ VARIANT vTelephoneHome );\
  130.     STDMETHOD(get_TelephoneMobile)(THIS_ VARIANT FAR* retval) ;\
  131.     STDMETHOD(put_TelephoneMobile)(THIS_ VARIANT vTelephoneMobile) ;\
  132.     STDMETHOD(get_TelephonePager)(THIS_ VARIANT FAR* retval) ;\
  133.     STDMETHOD(put_TelephonePager)(THIS_ VARIANT vTelephonePager) ;\
  134.     STDMETHOD(get_FaxNumber)(THIS_ VARIANT FAR* retval) ;\
  135.     STDMETHOD(put_FaxNumber)(THIS_ VARIANT vFaxNumber) ;\
  136.     STDMETHOD(get_OfficeLocations)(THIS_ VARIANT FAR* retval) ;\
  137.     STDMETHOD(put_OfficeLocations)(THIS_ VARIANT vOfficeLocation) ;\
  138.     STDMETHOD(get_PostalAddresses)(THIS_ VARIANT FAR* retval) ;\
  139.     STDMETHOD(put_PostalAddresses)(THIS_ VARIANT vPostalAddresses) ;\
  140.     STDMETHOD(get_PostalCodes)(THIS_ VARIANT FAR* retval) ;\
  141.     STDMETHOD(put_PostalCodes)(THIS_ VARIANT vPostalCodes) ;\
  142.     STDMETHOD(get_SeeAlso)(THIS_ VARIANT FAR* retval) ;\
  143.     STDMETHOD(put_SeeAlso)(THIS_ VARIANT vSeeAlso) ;\
  144.     STDMETHOD(get_AccountDisabled)(THIS_ VARIANT_BOOL FAR* retval) ;\
  145.     STDMETHOD(put_AccountDisabled)(THIS_ VARIANT_BOOL fAccountDisabled) ;\
  146.     STDMETHOD(get_AccountExpirationDate)(THIS_ DATE FAR* retval) ;\
  147.     STDMETHOD(put_AccountExpirationDate)(THIS_ DATE daAccountExpirationDate) ;\
  148.     STDMETHOD(get_GraceLoginsAllowed)(THIS_ long FAR* retval) ;\
  149.     STDMETHOD(put_GraceLoginsAllowed)(THIS_ long lnGraceLoginsAllowed) ;\
  150.     STDMETHOD(get_GraceLoginsRemaining)(THIS_ long FAR* retval) ;\
  151.     STDMETHOD(put_GraceLoginsRemaining)(THIS_ long lnGraceLoginsRemaining) ;\
  152.     STDMETHOD(get_IsAccountLocked)(THIS_ VARIANT_BOOL FAR* retval) ;\
  153.     STDMETHOD(put_IsAccountLocked)(THIS_ VARIANT_BOOL fIsAccountLocked) ;\
  154.     STDMETHOD(get_LoginHours)(THIS_ VARIANT FAR* retval) ;\
  155.     STDMETHOD(put_LoginHours)(THIS_ VARIANT vLoginHours) ;\
  156.     STDMETHOD(get_LoginWorkstations)(THIS_ VARIANT FAR* retval) ;\
  157.     STDMETHOD(put_LoginWorkstations)(THIS_ VARIANT vLoginWorkstations) ;\
  158.     STDMETHOD(get_MaxLogins)(THIS_ long FAR* retval) ;\
  159.     STDMETHOD(put_MaxLogins)(THIS_ long lnMaxLogins) ;\
  160.     STDMETHOD(get_MaxStorage)(THIS_ long FAR* retval) ;\
  161.     STDMETHOD(put_MaxStorage)(THIS_ long lnMaxStorage) ;\
  162.     STDMETHOD(get_PasswordExpirationDate)(THIS_ DATE FAR* retval) ;\
  163.     STDMETHOD(put_PasswordExpirationDate)(THIS_ DATE daPasswordExpirationDate) ;\
  164.     STDMETHOD(get_PasswordMinimumLength)(THIS_ long FAR* retval) ;\
  165.     STDMETHOD(put_PasswordMinimumLength)(THIS_ long lnPasswordMinimumLength) ;\
  166.     STDMETHOD(get_PasswordRequired)(THIS_ VARIANT_BOOL FAR* retval) ;\
  167.     STDMETHOD(put_PasswordRequired)(THIS_ VARIANT_BOOL fPasswordRequired) ;\
  168.     STDMETHOD(get_RequireUniquePassword)(THIS_ VARIANT_BOOL FAR* retval) ;\
  169.     STDMETHOD(put_RequireUniquePassword)(THIS_ VARIANT_BOOL fRequireUniquePassword) ;\
  170.     STDMETHOD(get_EmailAddress)(THIS_ BSTR FAR* retval) ;\
  171.     STDMETHOD(put_EmailAddress)(THIS_ BSTR bstrEmailAddress) ;\
  172.     STDMETHOD(get_HomeDirectory)(THIS_ BSTR FAR* retval) ;\
  173.     STDMETHOD(put_HomeDirectory)(THIS_ BSTR bstrHomeDirectory) ;\
  174.     STDMETHOD(get_Languages)(THIS_ VARIANT FAR* retval) ;\
  175.     STDMETHOD(put_Languages)(THIS_ VARIANT vLanguages) ;\
  176.     STDMETHOD(get_Profile)(THIS_ BSTR FAR* retval) ;\
  177.     STDMETHOD(put_Profile)(THIS_ BSTR bstrProfile) ;\
  178.     STDMETHOD(get_LoginScript)(THIS_ BSTR FAR* retval) ;\
  179.     STDMETHOD(put_LoginScript)(THIS_ BSTR bstrLoginScript) ;\
  180.     STDMETHOD(get_Picture)(THIS_ VARIANT FAR* retval) ;\
  181.     STDMETHOD(put_Picture)(THIS_ VARIANT vPicture) ;\
  182.     STDMETHOD(get_HomePage)(THIS_ BSTR FAR* retval) ;\
  183.     STDMETHOD(put_HomePage)(THIS_ BSTR bstrHomePage) ;\
  184.     STDMETHOD(Groups)(THIS_ IADsMembers FAR* FAR* ppGroups) ;\
  185.     STDMETHOD(SetPassword)(THIS_ BSTR NewPassword) ;\
  186.     STDMETHOD(ChangePassword)(THIS_ BSTR bstrOldPassword, BSTR bstrNewPassword) ;\
  187.  
  188.  
  189. /* IADsDomain methods */
  190. #define DECLARE_IADsDomain_METHODS \
  191.         STDMETHOD(get_MinPasswordLength)(THIS_ long FAR* retval) ;\
  192.         STDMETHOD(put_MinPasswordLength)(THIS_ long lnMinPasswordLength) ;\
  193.         STDMETHOD(get_MinPasswordAge)(THIS_ long FAR* retval) ;\
  194.         STDMETHOD(put_MinPasswordAge)(THIS_ long lnMinPasswordAge) ;\
  195.         STDMETHOD(get_MaxPasswordAge)(THIS_ long FAR* retval) ;\
  196.         STDMETHOD(put_MaxPasswordAge)(THIS_ long lnMaxPasswordAge) ;\
  197.         STDMETHOD(get_MaxBadPasswordsAllowed)(THIS_ long FAR* retval) ;\
  198.         STDMETHOD(put_MaxBadPasswordsAllowed)(THIS_ long lnMaxBadPasswordsAllowed) ;\
  199.         STDMETHOD(get_PasswordHistoryLength)(THIS_ long FAR* retval) ;\
  200.         STDMETHOD(put_PasswordHistoryLength)(THIS_ long lnPasswordHistoryLength) ;\
  201.         STDMETHOD(get_PasswordAttributes)(THIS_ long FAR* retval) ;\
  202.         STDMETHOD(put_PasswordAttributes)(THIS_ long lnPasswordAttributes) ;\
  203.         STDMETHOD(get_AutoUnlockInterval)(THIS_ long FAR* retval) ;\
  204.         STDMETHOD(put_AutoUnlockInterval)(THIS_ long lnAutoUnlockInterval) ;\
  205.         STDMETHOD(get_LockoutObservationInterval)(THIS_ long FAR* retval) ;\
  206.         STDMETHOD(put_LockoutObservationInterval)(THIS_ long lnLockoutObservationInterval) ;\
  207.         STDMETHOD(get_IsWorkgroup)(THIS_ VARIANT_BOOL FAR* retval);
  208.  
  209.  
  210. /* IADsComputer methods */
  211. #define DECLARE_IADsComputer_METHODS \
  212.         STDMETHOD(get_ComputerID)(THIS_ BSTR FAR* retval) ; \
  213.         STDMETHOD(get_Site)(THIS_ BSTR FAR* retval) ; \
  214.         STDMETHOD(get_Description)(THIS_ BSTR FAR* retval) ; \
  215.         STDMETHOD(put_Description)(THIS_ BSTR bstrDescription) ; \
  216.         STDMETHOD(get_Location)(THIS_ BSTR FAR* retval) ; \
  217.         STDMETHOD(put_Location)(THIS_ BSTR bstrLocation) ; \
  218.         STDMETHOD(get_PrimaryUser)(THIS_ BSTR FAR* retval) ;\
  219.         STDMETHOD(put_PrimaryUser)(THIS_ BSTR bstrPrimaryUser) ;\
  220.         STDMETHOD(get_Owner)(THIS_ BSTR FAR* retval) ;\
  221.         STDMETHOD(put_Owner)(THIS_ BSTR bstrOwner) ;\
  222.         STDMETHOD(get_Division)(THIS_ BSTR FAR* retval) ; \
  223.         STDMETHOD(put_Division)(THIS_ BSTR bstrDivision) ; \
  224.         STDMETHOD(get_Department)(THIS_ BSTR FAR* retval) ; \
  225.         STDMETHOD(put_Department)(THIS_ BSTR bstrDepartment) ; \
  226.         STDMETHOD(get_Role)(THIS_ BSTR FAR* retval) ; \
  227.         STDMETHOD(put_Role)(THIS_ BSTR bstrRole) ; \
  228.         STDMETHOD(get_OperatingSystem)(THIS_ BSTR FAR* retval); \
  229.         STDMETHOD(put_OperatingSystem)(THIS_ BSTR bstrOperatingSystem); \
  230.         STDMETHOD(get_OperatingSystemVersion)(THIS_ BSTR FAR* retval); \
  231.         STDMETHOD(put_OperatingSystemVersion)(THIS_ BSTR bstrOperatingSystemVersion); \
  232.         STDMETHOD(get_Model)(THIS_ BSTR FAR* retval) ; \
  233.         STDMETHOD(put_Model)(THIS_ BSTR bstrModel) ; \
  234.         STDMETHOD(get_Processor)(THIS_ BSTR FAR* retval) ; \
  235.         STDMETHOD(put_Processor)(THIS_ BSTR bstrProcessor) ; \
  236.         STDMETHOD(get_ProcessorCount)(THIS_ BSTR FAR* retval) ; \
  237.         STDMETHOD(put_ProcessorCount)(THIS_ BSTR bstrProcessorCount) ; \
  238.         STDMETHOD(get_MemorySize)(THIS_ BSTR FAR* retval) ; \
  239.         STDMETHOD(put_MemorySize)(THIS_ BSTR bstrMemorySize) ; \
  240.         STDMETHOD(get_StorageCapacity)(THIS_ BSTR FAR* retval) ; \
  241.         STDMETHOD(put_StorageCapacity)(THIS_ BSTR bstrStorageCapacity); \
  242.         STDMETHOD(get_NetAddresses)(THIS_ VARIANT FAR* retval); \
  243.         STDMETHOD(put_NetAddresses)(THIS_ VARIANT vNetAddresses);
  244.  
  245.  
  246. #define DECLARE_IADsComputerOperations_METHODS \
  247.         STDMETHOD(Status)(THIS_ IDispatch * FAR* ppObject) ; \
  248.         STDMETHOD(Shutdown)(THIS_ VARIANT_BOOL bReboot) ;
  249.  
  250.  
  251. #define DECLARE_IADsGroup_METHODS \
  252.         STDMETHOD(get_Description)(THIS_ BSTR FAR* retval) ; \
  253.         STDMETHOD(put_Description)(THIS_ BSTR bstrDescription) ; \
  254.         STDMETHOD(Members)(THIS_ IADsMembers FAR* FAR* ppMembers) ; \
  255.         STDMETHOD(IsMember)(THIS_ BSTR bstrMember, VARIANT_BOOL FAR* bMember) ;\
  256.         STDMETHOD(Add)(THIS_ BSTR bstrNewItem) ;\
  257.         STDMETHOD(Remove)(THIS_ BSTR bstrItemToBeRemoved) ;
  258.  
  259. #define DECLARE_IADsMembers_METHODS \
  260.         STDMETHOD(get_Count)(THIS_ long FAR* plCount) ;\
  261.         STDMETHOD(get__NewEnum)(THIS_ IUnknown * FAR* ppEnumerator) ;\
  262.         STDMETHOD(get_Filter)(THIS_ VARIANT FAR* pvFilter) ;\
  263.         STDMETHOD(put_Filter)(THIS_ VARIANT pvFilter) ;\
  264.  
  265.  
  266.  
  267. #define DECLARE_IADsPrintQueue_METHODS \
  268.     STDMETHOD(get_Model)(THIS_ BSTR FAR* retval) ;\
  269.     STDMETHOD(put_Model)(THIS_ BSTR bstrModel) ;\
  270.     STDMETHOD(get_Datatype)(THIS_ BSTR FAR* retval) ;\
  271.     STDMETHOD(put_Datatype)(THIS_ BSTR bstrDatatype) ;\
  272.     STDMETHOD(get_Description)(THIS_ BSTR FAR* retval) ;\
  273.     STDMETHOD(put_Description)(THIS_ BSTR bstrDescription) ;\
  274.     STDMETHOD(get_Location)(THIS_ BSTR FAR* retval) ;\
  275.     STDMETHOD(put_Location)(THIS_ BSTR bstrLocation) ;\
  276.     STDMETHOD(get_Priority)(THIS_ long FAR* retval) ;\
  277.     STDMETHOD(put_Priority)(THIS_ long lnPriority) ;\
  278.     STDMETHOD(get_StartTime)(THIS_ DATE FAR* retval) ;\
  279.     STDMETHOD(put_StartTime)(THIS_ DATE daStartTime) ;\
  280.     STDMETHOD(get_UntilTime)(THIS_ DATE FAR* retval) ;\
  281.     STDMETHOD(put_UntilTime)(THIS_ DATE daUntilTime) ;\
  282.     STDMETHOD(get_DefaultJobPriority)(THIS_ long FAR* retval) ;\
  283.     STDMETHOD(put_DefaultJobPriority)(THIS_ long lnDefaultJobPriority) ;\
  284.     STDMETHOD(get_BannerPage)(THIS_ BSTR FAR* retval) ;\
  285.     STDMETHOD(put_BannerPage)(THIS_ BSTR bstrBannerPage) ;\
  286.     STDMETHOD(get_PrinterPath)(THIS_ BSTR FAR* retval) ;\
  287.     STDMETHOD(put_PrinterPath)(THIS_ BSTR bstrHostComputer) ;\
  288.     STDMETHOD(get_PrintProcessor)(THIS_ BSTR FAR* retval);\
  289.     STDMETHOD(put_PrintProcessor)(THIS_ BSTR bstrPrintProcessor);\
  290.     STDMETHOD(get_PrintDevices)(THIS_ VARIANT FAR* retval);\
  291.     STDMETHOD(put_PrintDevices)(THIS_ VARIANT vPorts);\
  292.     STDMETHOD(get_NetAddresses)(THIS_ VARIANT FAR* retval);\
  293.     STDMETHOD(put_NetAddresses)(THIS_ VARIANT vNetAddresses);\
  294.  
  295. #define DECLARE_IADsPrintQueueOperations_METHODS \
  296.     STDMETHOD(get_Status)(THIS_ long FAR* retval) ;\
  297.     STDMETHOD(PrintJobs)(THIS_ IADsCollection * FAR* ppObject) ;\
  298.     STDMETHOD(Pause)(THIS) ;\
  299.     STDMETHOD(Resume)(THIS) ;\
  300.     STDMETHOD(Purge)(THIS) ;
  301.  
  302.  
  303. #define DECLARE_IADsPrintJob_METHODS \
  304.     STDMETHOD(get_HostPrintQueue)(THIS_ BSTR FAR* retval) ;\
  305.     STDMETHOD(get_User)(THIS_ BSTR FAR* retval) ;\
  306.     STDMETHOD(get_UserPath)(THIS_ BSTR FAR* retval);\
  307.     STDMETHOD(get_Size)(THIS_ long FAR* retval) ;\
  308.     STDMETHOD(get_TimeSubmitted)(THIS_ DATE FAR* retval) ;\
  309.     STDMETHOD(get_TotalPages)(THIS_ long FAR* retval) ;\
  310.     STDMETHOD(get_Description)(THIS_ BSTR FAR* retval) ;\
  311.     STDMETHOD(put_Description)(THIS_ BSTR bstrDescription) ;\
  312.     STDMETHOD(get_Priority)(THIS_ long FAR* retval) ;\
  313.     STDMETHOD(put_Priority)(THIS_ long lnPriority) ;\
  314.     STDMETHOD(get_StartTime)(THIS_ DATE FAR* retval) ;\
  315.     STDMETHOD(put_StartTime)(THIS_ DATE daStartTime) ;\
  316.     STDMETHOD(get_UntilTime)(THIS_ DATE FAR* retval) ;\
  317.     STDMETHOD(put_UntilTime)(THIS_ DATE daUntilTime) ;\
  318.     STDMETHOD(get_Notify)(THIS_ BSTR FAR* retval) ;\
  319.     STDMETHOD(put_Notify)(THIS_ BSTR bstrNotify) ;\
  320.     STDMETHOD(get_NotifyPath)(THIS_ BSTR FAR* retval);\
  321.     STDMETHOD(put_NotifyPath)(THIS_ BSTR bstrNotifyPath);\
  322.  
  323. #define DECLARE_IADsPrintJobOperations_METHODS \
  324.     STDMETHOD(get_Position)(THIS_ long FAR* retval) ;\
  325.     STDMETHOD(put_Position)(THIS_ long lnPosition) ;\
  326.     STDMETHOD(get_TimeElapsed)(THIS_ long FAR* retval) ;\
  327.     STDMETHOD(get_PagesPrinted)(THIS_ long FAR* retval) ;\
  328.     STDMETHOD(get_Status)(THIS_ long FAR* retval) ;\
  329.     STDMETHOD(Pause)(THIS) ;\
  330.     STDMETHOD(Resume)(THIS) ;\
  331.     STDMETHOD(Remove)(THIS) ;
  332.  
  333. #define DECLARE_IADsCollection_METHODS \
  334.     STDMETHOD(get__NewEnum)(THIS_ IUnknown * FAR* ppEnumerator) ;\
  335.     STDMETHOD(GetObject)(THIS_ BSTR bstrName, VARIANT FAR* pvItem);\
  336.     STDMETHOD(Add)(THIS_ BSTR bstrName, VARIANT vItem);\
  337.     STDMETHOD(Remove)(THIS_ BSTR bstrItemToBeRemoved);
  338.  
  339.  
  340. #define DECLARE_IEnumVARIANT_METHODS \
  341.     STDMETHOD(Next)(ULONG cElements, \
  342.                     VARIANT FAR* pvar,\
  343.                     ULONG FAR* pcElementFetched);\
  344.     STDMETHOD(Skip)(ULONG cElements);\
  345.     STDMETHOD(Reset)();\
  346.     STDMETHOD(Clone)(IEnumVARIANT FAR* FAR* ppenum);
  347.  
  348.  
  349. #define DECLARE_IADsService_METHODS \
  350.     STDMETHOD(get_HostComputer)(THIS_ BSTR FAR* pbstrHostComputer) ;\
  351.     STDMETHOD(put_HostComputer)(THIS_ BSTR bstrHostComputer) ;\
  352.     STDMETHOD(get_DisplayName)(THIS_ BSTR FAR* pbstrDisplayName) ;\
  353.     STDMETHOD(put_DisplayName)(THIS_ BSTR bstrDisplayName) ;\
  354.     STDMETHOD(get_Version)(THIS_ BSTR FAR* pbstrVersion) ;\
  355.     STDMETHOD(put_Version)(THIS_ BSTR bstrVersion) ;\
  356.     STDMETHOD(get_ServiceType)(THIS_ long FAR* plServiceType) ;\
  357.     STDMETHOD(put_ServiceType)(THIS_ long lServiceType) ;\
  358.     STDMETHOD(get_StartType)(THIS_ long FAR* plStartType) ;\
  359.     STDMETHOD(put_StartType)(THIS_ long lStartType) ;\
  360.     STDMETHOD(get_Path)(THIS_ BSTR FAR* pbstrPath) ;\
  361.     STDMETHOD(put_Path)(THIS_ BSTR bstrPath) ;\
  362.     STDMETHOD(get_StartupParameters)(THIS_ BSTR FAR* pbstrStartupParameters) ;\
  363.     STDMETHOD(put_StartupParameters)(THIS_ BSTR bstrStartupParameters) ;\
  364.     STDMETHOD(get_ErrorControl)(THIS_ long FAR* plErrorControl) ;\
  365.     STDMETHOD(put_ErrorControl)(THIS_ long lErrorControl) ;\
  366.     STDMETHOD(get_LoadOrderGroup)(THIS_ BSTR FAR* pbstrLoadOrderGroup) ;\
  367.     STDMETHOD(put_LoadOrderGroup)(THIS_ BSTR bstrLoadOrderGroup) ;\
  368.     STDMETHOD(get_ServiceAccountName)(THIS_ BSTR FAR* pbstrServiceAccountName) ;\
  369.     STDMETHOD(put_ServiceAccountName)(THIS_ BSTR bstrServiceAccountName) ;\
  370.     STDMETHOD(get_ServiceAccountPath)(THIS_ BSTR FAR* retval);\
  371.     STDMETHOD(put_ServiceAccountPath)(THIS_ BSTR bstrServiceAccountPath);\
  372.     STDMETHOD(get_Dependencies)(THIS_ VARIANT FAR* pv);\
  373.     STDMETHOD(put_Dependencies)(THIS_ VARIANT v); \
  374.  
  375.  
  376. #define  DECLARE_IADsServiceOperations_METHODS \
  377.     STDMETHOD(get_Status)(THIS_ long FAR* retval) ;\
  378.     STDMETHOD(SetPassword)(THIS_ BSTR bstrNewPassword) ;\
  379.     STDMETHOD(Start)(THIS) ;\
  380.     STDMETHOD(Stop)(THIS) ;\
  381.     STDMETHOD(Pause)(THIS) ;\
  382.     STDMETHOD(Continue)(THIS) ;
  383.  
  384. #define  DECLARE_IADsFileService_METHODS \
  385.     STDMETHOD(get_Description)(THIS_ BSTR FAR* pbstrDescription) ;\
  386.     STDMETHOD(put_Description)(THIS_ BSTR bstrDescription) ;\
  387.     STDMETHOD(get_MaxUserCount)(THIS_ long FAR* plMaxUserCount) ;\
  388.     STDMETHOD(put_MaxUserCount)(THIS_ long lMaxUserCount) ;
  389.  
  390. #define  DECLARE_IADsFileServiceOperations_METHODS \
  391.     STDMETHOD(Sessions)(THIS_ IADsCollection FAR* FAR* ppSessions) ;\
  392.     STDMETHOD(Resources)(THIS_ IADsCollection FAR* FAR* ppResources) ;
  393.  
  394.  
  395. #define  DECLARE_IADsSession_METHODS \
  396.     STDMETHOD(get_User)(THIS_ BSTR FAR* retval) ;\
  397.     STDMETHOD(get_UserPath)(THIS_ BSTR FAR* retval);\
  398.     STDMETHOD(get_Computer)(THIS_ BSTR FAR* retval) ;\
  399.     STDMETHOD(get_ComputerPath)(THIS_ BSTR FAR* retval);\
  400.     STDMETHOD(get_ConnectTime)(THIS_ LONG FAR* retval) ;\
  401.     STDMETHOD(get_IdleTime)(THIS_ LONG FAR* retval) ;
  402.  
  403.  
  404. #define  DECLARE_IADsFileShare_METHODS \
  405.     STDMETHOD(get_CurrentUserCount)(THIS_ LONG FAR* retval) ;\
  406.     STDMETHOD(get_Description)(THIS_ BSTR FAR* retval) ;\
  407.     STDMETHOD(put_Description)(THIS_ BSTR bstrDescription) ;\
  408.     STDMETHOD(get_HostComputer)(THIS_ BSTR FAR* retval) ;\
  409.     STDMETHOD(put_HostComputer)(THIS_ BSTR bstrHostComputer) ;\
  410.     STDMETHOD(get_Path)(THIS_ BSTR FAR* retval) ;\
  411.     STDMETHOD(put_Path)(THIS_ BSTR bstrPath) ;\
  412.     STDMETHOD(get_MaxUserCount)(THIS_ LONG FAR* retval) ;\
  413.     STDMETHOD(put_MaxUserCount)(THIS_ LONG  lMaxUserCount) ;
  414.  
  415. #define DECLARE_IADsResource_METHODS \
  416.     STDMETHOD(get_User)(THIS_ BSTR FAR* retval) ;\
  417.     STDMETHOD(get_UserPath)(THIS_ BSTR FAR* retval);\
  418.     STDMETHOD(get_Path)(THIS_ BSTR FAR* retval) ;\
  419.     STDMETHOD(get_LockCount)(THIS_ long FAR* retval) ;
  420.  
  421.  
  422. #define DECLARE_IADsClass_METHODS \
  423.         STDMETHOD(get_PrimaryInterface)(THIS_ BSTR FAR* pbstrGUID) ;\
  424.         STDMETHOD(get_CLSID)(THIS_ BSTR FAR* pbstrCLSID) ;\
  425.         STDMETHOD(put_CLSID)(THIS_ BSTR bstrCLSID) ;\
  426.         STDMETHOD(get_OID)(THIS_ BSTR FAR* pbstrOID) ;\
  427.         STDMETHOD(put_OID)(THIS_ BSTR bstrOID) ;\
  428.         STDMETHOD(get_Abstract)(THIS_ VARIANT_BOOL FAR* pfAbstract) ;\
  429.         STDMETHOD(put_Abstract)(THIS_ VARIANT_BOOL fAbstract) ;\
  430.         STDMETHOD(get_Auxiliary)(THIS_ VARIANT_BOOL FAR* pfAuxiliary) ;\
  431.         STDMETHOD(put_Auxiliary)(THIS_ VARIANT_BOOL fAuxiliary) ;\
  432.         STDMETHOD(get_MandatoryProperties)(THIS_ VARIANT FAR* pvMandatoryProperties) ;\
  433.         STDMETHOD(put_MandatoryProperties)(THIS_ VARIANT vMandatoryProperties) ;\
  434.         STDMETHOD(get_OptionalProperties)(THIS_ VARIANT FAR* pvOptionalProperties) ;\
  435.         STDMETHOD(put_OptionalProperties)(THIS_ VARIANT vOptionalProperties) ;\
  436.         STDMETHOD(get_NamingProperties)(THIS_ VARIANT FAR* pvNamingProperties);\
  437.         STDMETHOD(put_NamingProperties)(THIS_ VARIANT vNamingProperties) ;\
  438.         STDMETHOD(get_DerivedFrom)(THIS_ VARIANT FAR* pvDerivedFrom) ;\
  439.         STDMETHOD(put_DerivedFrom)(THIS_ VARIANT vDerivedFrom) ;\
  440.         STDMETHOD(get_AuxDerivedFrom)(THIS_ VARIANT FAR* pvAuxDerivedFrom) ;\
  441.         STDMETHOD(put_AuxDerivedFrom)(THIS_ VARIANT vAuxDerivedFrom) ;\
  442.         STDMETHOD(get_PossibleSuperiors)(THIS_ VARIANT FAR* pvPossSuperiors);\
  443.         STDMETHOD(put_PossibleSuperiors)(THIS_ VARIANT vPossSuperiors) ;\
  444.         STDMETHOD(get_Containment)(THIS_ VARIANT FAR* pvContainment);\
  445.         STDMETHOD(put_Containment)(THIS_ VARIANT vContainment) ;\
  446.         STDMETHOD(get_Container)(THIS_ VARIANT_BOOL FAR* pfContainer);\
  447.         STDMETHOD(put_Container)(THIS_ VARIANT_BOOL fContainer) ;\
  448.         STDMETHOD(get_HelpFileName)(THIS_ BSTR FAR* pbstrHelpfile) ;\
  449.         STDMETHOD(put_HelpFileName)(THIS_ BSTR bstrHelpfile) ;\
  450.         STDMETHOD(get_HelpFileContext)(THIS_ long FAR* plHelpContext) ;\
  451.         STDMETHOD(put_HelpFileContext)(THIS_ long lHelpContext) ; \
  452.         STDMETHOD(Qualifiers)(THIS_ IADsCollection FAR* FAR* ppQualifiers) ;
  453.  
  454.  
  455. #define DECLARE_IADsProperty_METHODS \
  456.         STDMETHOD(get_OID)(THIS_ BSTR FAR* pbstrOID) ;\
  457.         STDMETHOD(put_OID)(THIS_ BSTR bstrOID) ;\
  458.         STDMETHOD(get_Syntax)(THIS_ BSTR FAR* pbstrSyntax) ;\
  459.         STDMETHOD(put_Syntax)(THIS_ BSTR bstrSyntax) ;\
  460.         STDMETHOD(get_MaxRange)(THIS_ long FAR* plMaxRange) ;\
  461.         STDMETHOD(put_MaxRange)(THIS_ long lMaxRange) ;\
  462.         STDMETHOD(get_MinRange)(THIS_ long FAR* plMinRange) ;\
  463.         STDMETHOD(put_MinRange)(THIS_ long lMinRange) ;\
  464.         STDMETHOD(get_MultiValued)(THIS_ VARIANT_BOOL FAR* pfMultiValued) ;\
  465.         STDMETHOD(put_MultiValued)(THIS_ VARIANT_BOOL fMultiValued) ;\
  466.         STDMETHOD(Qualifiers)(THIS_ IADsCollection FAR* FAR* ppQualifiers) ;
  467.  
  468. #define DECLARE_IADsSyntax_METHODS \
  469.         STDMETHOD(get_OleAutoDataType)(THIS_ long FAR* plOleAutoDataType) ;\
  470.         STDMETHOD(put_OleAutoDataType)(THIS_ long lOleAutoDataType) ;
  471.  
  472. #define DECLARE_IADsLocality_METHODS \
  473.         STDMETHOD(get_Description)(THIS_ BSTR FAR* retval) ;\
  474.         STDMETHOD(put_Description)(THIS_ BSTR bstrDescription) ;\
  475.         STDMETHOD(get_LocalityName)(THIS_ BSTR FAR* retval) ;\
  476.         STDMETHOD(put_LocalityName)(THIS_ BSTR bstrLocalityName) ;\
  477.         STDMETHOD(get_PostalAddress)(THIS_ BSTR FAR* retval) ;\
  478.         STDMETHOD(put_PostalAddress)(THIS_ BSTR bstrPostalAddress) ;\
  479.         STDMETHOD(get_SeeAlso)(THIS_ VARIANT FAR* retval) ;\
  480.         STDMETHOD(put_SeeAlso)(THIS_ VARIANT vSeeAlso) ;
  481.  
  482.  
  483. #define DECLARE_IADsO_METHODS \
  484.         STDMETHOD(get_Description)(THIS_ BSTR FAR* retval) ;\
  485.         STDMETHOD(put_Description)(THIS_ BSTR bstrDescription) ;\
  486.         STDMETHOD(get_LocalityName)(THIS_ BSTR FAR* retval) ;\
  487.         STDMETHOD(put_LocalityName)(THIS_ BSTR bstrLocalityName) ;\
  488.         STDMETHOD(get_PostalAddress)(THIS_ BSTR FAR* retval) ;\
  489.         STDMETHOD(put_PostalAddress)(THIS_ BSTR bstrPostalAddress) ;\
  490.         STDMETHOD(get_TelephoneNumber)(THIS_ BSTR FAR* retval) ;\
  491.         STDMETHOD(put_TelephoneNumber)(THIS_ BSTR bstrTelephoneNumber) ;\
  492.         STDMETHOD(get_FaxNumber)(THIS_ BSTR FAR* retval) ;\
  493.         STDMETHOD(put_FaxNumber)(THIS_ BSTR bstrFaxNumber) ;\
  494.         STDMETHOD(get_SeeAlso)(THIS_ VARIANT FAR* retval) ;\
  495.         STDMETHOD(put_SeeAlso)(THIS_ VARIANT vSeeAlso) ;
  496.  
  497. #define DECLARE_IADsOU_METHODS \
  498.         STDMETHOD(get_Description)(THIS_ BSTR FAR* retval) ;\
  499.         STDMETHOD(put_Description)(THIS_ BSTR bstrDescription) ;\
  500.         STDMETHOD(get_LocalityName)(THIS_ BSTR FAR* retval) ;\
  501.         STDMETHOD(put_LocalityName)(THIS_ BSTR bstrLocalityName) ;\
  502.         STDMETHOD(get_PostalAddress)(THIS_ BSTR FAR* retval) ;\
  503.         STDMETHOD(put_PostalAddress)(THIS_ BSTR bstrPostalAddress) ;\
  504.         STDMETHOD(get_TelephoneNumber)(THIS_ BSTR FAR* retval) ;\
  505.         STDMETHOD(put_TelephoneNumber)(THIS_ BSTR bstrTelephoneNumber) ;\
  506.         STDMETHOD(get_FaxNumber)(THIS_ BSTR FAR* retval) ;\
  507.         STDMETHOD(put_FaxNumber)(THIS_ BSTR bstrFaxNumber) ;\
  508.         STDMETHOD(get_SeeAlso)(THIS_ VARIANT FAR* retval) ;\
  509.         STDMETHOD(put_SeeAlso)(THIS_ VARIANT vSeeAlso) ;\
  510.         STDMETHOD(get_BusinessCategory)(THIS_ BSTR FAR* retval) ;\
  511.         STDMETHOD(put_BusinessCategory)(THIS_ BSTR bstrBusinessCategory) ;
  512.  
  513. #define DECLARE_IDSNamespace_METHODS \
  514.         STDMETHOD(OpenDSObject)(     \
  515.             THIS_ LPWSTR lpszDNName, \
  516.             LPWSTR lpszUserName,     \
  517.             LPWSTR lpszPassword,     \
  518.             REFIID riid,             \
  519.             void * * ppADsObj      \
  520.             );
  521.  
  522. #endif
  523.  
  524.