home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Internet 2000 May / MICD_2000_05.iso / CBuilder5 / INSTALL / DATA1.CAB / Program_Built_Files / Include / dsclient.h < prev    next >
C/C++ Source or Header  |  2000-02-01  |  19KB  |  471 lines

  1. #ifndef __dsclient_h
  2. #pragma option push -b -a8 -pc -A- /*P_O_Push*/
  3. #define __dsclient_h
  4.  
  5. //---------------------------------------------------------------------------//
  6. // CLSIDs exposed for the dsclient.
  7. //---------------------------------------------------------------------------//
  8.  
  9. // this CLSID is used to signal that the DSOBJECTNAMEs structure originated
  10. // for the Microsoft DS.
  11.  
  12. DEFINE_GUID(CLSID_MicrosoftDS, 0xfe1290f0, 0xcfbd, 0x11cf, 0xa3, 0x30, 0x0, 0xaa, 0x0, 0xc1, 0x6e, 0x65);
  13. #define CLSID_DsFolder CLSID_MicrosoftDS
  14.  
  15.  
  16. // this is the CLSID used by clients to get the IShellExtInit, IPropSheetExt
  17. // and IContextMenus exposed from dsuiext.dll.
  18.  
  19. DEFINE_GUID(CLSID_DsPropertyPages, 0xd45d530,  0x764b, 0x11d0, 0xa1, 0xca, 0x0, 0xaa, 0x0, 0xc1, 0x6e, 0x65);
  20.  
  21. DEFINE_GUID(CLSID_DsDomainTreeBrowser, 0x1698790a, 0xe2b4, 0x11d0, 0xb0, 0xb1, 0x00, 0xc0, 0x4f, 0xd8, 0xdc, 0xa6);
  22. DEFINE_GUID(IID_IDsBrowseDomainTree, 0x7cabcf1e, 0x78f5, 0x11d2, 0x96, 0xc, 0x0, 0xc0, 0x4f, 0xa3, 0x1a, 0x86);
  23.  
  24. DEFINE_GUID(CLSID_DsDisplaySpecifier, 0x1ab4a8c0, 0x6a0b, 0x11d2, 0xad, 0x49, 0x0, 0xc0, 0x4f, 0xa3, 0x1a, 0x86);
  25. #define IID_IDsDisplaySpecifier CLSID_DsDisplaySpecifier
  26.  
  27. DEFINE_GUID(CLSID_DsFolderProperties, 0x9e51e0d0, 0x6e0f, 0x11d2, 0x96, 0x1, 0x0, 0xc0, 0x4f, 0xa3, 0x1a, 0x86);
  28. #define IID_IDsFolderProperties CLSID_DsFolderProperties
  29.  
  30. #ifndef GUID_DEFS_ONLY
  31.  
  32. #include "activeds.h"
  33.  
  34. //---------------------------------------------------------------------------//
  35. // Clipboard formats used within DSUI
  36. //---------------------------------------------------------------------------//
  37.  
  38. //
  39. // CF_DSOBJECTS
  40. // ------------
  41. //  This clipboard format defines the seleciton for an DS IShellFolder to the
  42. //  shell extensions.   All strings are stored as BSTR's, and an offset == 0 
  43. //  is used to indicate that the string is not present.
  44. // 
  45.  
  46. #define DSOBJECT_ISCONTAINER            0x00000001  // = 1 => object is a container
  47. #define DSOBJECT_READONLYPAGES          0x80000000  // = 1 => read only pages
  48.  
  49. #define DSPROVIDER_UNUSED_0             0x00000001
  50. #define DSPROVIDER_UNUSED_1             0x00000002
  51. #define DSPROVIDER_UNUSED_2             0x00000004
  52. #define DSPROVIDER_UNUSED_3             0x00000008
  53. #define DSPROVIDER_ADVANCED             0x00000010  // = 1 => advanced mode 
  54.  
  55. #define CFSTR_DSOBJECTNAMES TEXT("DsObjectNames")
  56.  
  57. typedef struct
  58. {
  59.     DWORD   dwFlags;                    // item flags
  60.     DWORD   dwProviderFlags;            // flags for item provider
  61.     DWORD   offsetName;                 // offset to ADS path of the object
  62.     DWORD   offsetClass;                // offset to object class name / == 0 not known
  63. } DSOBJECT, * LPDSOBJECT;
  64.  
  65. typedef struct
  66. {
  67.     CLSID    clsidNamespace;            // namespace identifier (indicates which namespace selection from)
  68.     UINT     cItems;                    // number of objects
  69.     DSOBJECT aObjects[1];               // array of objects
  70. } DSOBJECTNAMES, * LPDSOBJECTNAMES;
  71.  
  72.  
  73. //
  74. // CF_DSDISPLAYSPECOPTIONS
  75. // -----------------------
  76. //  When invoking an object referenced by a display specifier (context menu, property
  77. //  page, etc) we call the IShellExtInit interface passing a IDataObject.  This data
  78. //  object supports the CF_DSDISPLAYSPECOPTIONS format to give out configuration
  79. //  informaiton about admin/shell invocation.
  80. //
  81. //  When interacting with dsuiext.dll the interfaces uses this clipboard format
  82. //  to determine which display specifier attributes to address (admin/shell)
  83. //  and pick up the values accordingly.  If no format is suppoted then
  84. //  dsuiext.dll defaults to shell.
  85. // 
  86.  
  87. #define CFSTR_DS_DISPLAY_SPEC_OPTIONS TEXT("DsDisplaySpecOptions")
  88. #define CFSTR_DSDISPLAYSPECOPTIONS CFSTR_DS_DISPLAY_SPEC_OPTIONS
  89.  
  90. typedef struct _DSDISPLAYSPECOPTIONS
  91. {
  92.     DWORD   dwSize;                             // size of struct, for versioning
  93.     DWORD   dwFlags;                            // invocation flags
  94.     DWORD   offsetAttribPrefix;                 // offset to attribute prefix string.
  95.  
  96.     DWORD   offsetUserName;                     // offset to UNICODE user name
  97.     DWORD   offsetPassword;                     // offset to UNICODE password
  98.     DWORD   offsetServer;
  99.     DWORD   offsetServerConfigPath;
  100.  
  101. } DSDISPLAYSPECOPTIONS, * PDSDISPLAYSPECOPTIONS, * LPDSDISPLAYSPECOPTIONS;
  102.  
  103. #define DS_PROP_SHELL_PREFIX L"shell"
  104. #define DS_PROP_ADMIN_PREFIX L"admin"
  105.  
  106. #define DSDSOF_HASUSERANDSERVERINFO     0x00000001      // = 1 => user name/password are valid
  107. #define DSDSOF_SIMPLEAUTHENTICATE       0x00000002      // = 1 => don't use secure authentication to DS
  108. #define DSDSOF_DSAVAILABLE              0x40000000      // = 1 => ignore DS available checks
  109.  
  110. //
  111. // CF_DSPROPERTYPAGEINFO
  112. // ---------------------
  113. //  When the property pages for an object are being displayed the parsed
  114. //  display specifier string is passed to the page object via the IDataObject
  115. //  in the following clipboard format.
  116. //
  117. //  Within the display specifier for a property page, the format for a
  118. //  Win32 extension is "n,{clsid}[,bla...]" we take the "bla" section and
  119. //  pass it down.
  120. // 
  121.  
  122. #define CFSTR_DSPROPERTYPAGEINFO TEXT("DsPropPageInfo")
  123.  
  124. typedef struct
  125. {
  126.     DWORD offsetString;                 // offset to UNICODE string
  127. } DSPROPERTYPAGEINFO, * LPDSPROPERTYPAGEINFO;
  128.  
  129.  
  130. // 
  131. // To sync property pages and the admin tools this message is broadcast
  132. //
  133.  
  134. #define DSPROP_ATTRCHANGED_MSG  TEXT("DsPropAttrChanged")
  135.  
  136. //---------------------------------------------------------------------------//
  137.  
  138.  
  139. //---------------------------------------------------------------------------//
  140. //
  141. // IDsBrowseDomainTree
  142. // ===================
  143. //  This interface returns a list of the domains from a given computer name
  144. //  (or the current computer name if none is specified).
  145. //
  146. //  NOTES:
  147. //    1) The structure returned by ::GetDomains should be free'd using
  148. //       FreeDomains.
  149. //
  150. //    2) ::BrowseTo allocates a string on exit, this is allocated using
  151. //       CoTaskMemAlloc, and therefore should be free'd using CoTaskMemFree.
  152. //
  153. //---------------------------------------------------------------------------//
  154.  
  155. #define DBDTF_RETURNFQDN          0x00000001  // if not set, pszNCName will be blank
  156. #define DBDTF_RETURNMIXEDDOMAINS  0x00000002  // set it if you want downlevel trust domains too
  157. #define DBDTF_RETURNEXTERNAL      0x00000004  // set it if you want external trust domains too
  158. #define DBDTF_RETURNINBOUND       0x00000008  // set it if you want trusting domains
  159. #define DBDTF_RETURNINOUTBOUND    0x00000010  // set it if you want both trusted and trusting domains
  160.  
  161. typedef struct _DOMAINDESC
  162. {       
  163.   LPWSTR pszName;                       // domain name (if no dns, use netbios)
  164.   LPWSTR pszPath;                       // set to blank
  165.   LPWSTR pszNCName;                     // FQDN, e.g.,DC=mydomain,DC=microsoft,DC=com
  166.   LPWSTR pszTrustParent;                // parent domain name (if no dns, use netbios)
  167.   LPWSTR pszObjectClass;                // Object class of the domain object referenced
  168.   ULONG  ulFlags;                       // Flags, from DS_TRUSTED_DOMAINS.Flags
  169.   BOOL   fDownLevel;                    // == 1 if downlevel domain
  170.   struct _DOMAINDESC *pdChildList;      // Children of this node
  171.   struct _DOMAINDESC *pdNextSibling;    // Siblings of this node            
  172. } DOMAIN_DESC, DOMAINDESC, * PDOMAIN_DESC, * LPDOMAINDESC;
  173.  
  174. typedef struct
  175. {
  176.   DWORD dsSize;
  177.   DWORD dwCount;
  178.   DOMAINDESC aDomains[1];
  179. } DOMAIN_TREE, DOMAINTREE, * PDOMAIN_TREE, * LPDOMAINTREE;
  180.  
  181. #undef  INTERFACE
  182. #define INTERFACE  IDsBrowseDomainTree
  183.  
  184. DECLARE_INTERFACE_(IDsBrowseDomainTree, IUnknown)
  185. {
  186.     // *** IUnknown methods ***
  187.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
  188.     STDMETHOD_(ULONG,AddRef)(THIS)  PURE;
  189.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  190.  
  191.     // *** IDsBrowseDomainTree methods ***
  192.     STDMETHOD(BrowseTo)(THIS_ HWND hwndParent, LPWSTR *ppszTargetPath, DWORD dwFlags) PURE;
  193.     STDMETHOD(GetDomains)(THIS_ PDOMAIN_TREE *ppDomainTree, DWORD dwFlags) PURE;
  194.     STDMETHOD(FreeDomains)(THIS_ PDOMAIN_TREE *ppDomainTree) PURE;
  195.     STDMETHOD(FlushCachedDomains)(THIS) PURE;
  196.     STDMETHOD(SetComputer)(THIS_ LPCWSTR pszComputerName, LPCWSTR pszUserName, LPCWSTR pszPassword) PURE;
  197. };
  198.  
  199. //---------------------------------------------------------------------------//
  200.  
  201.  
  202. //---------------------------------------------------------------------------//
  203. //
  204. // IDsDisplaySpecifier
  205. // ===================
  206. //  This interface gives client UI access to the display specifiers for 
  207. //  specific attributes.
  208. //
  209. //---------------------------------------------------------------------------//
  210.  
  211. //
  212. // IDsDisplaySpecifier::SetServer flags
  213. //
  214. #define DSSSF_SIMPLEAUTHENTICATE        0x00000001  // = 1 => don't use secure authentication to DS
  215. #define DSSSF_DSAVAILABLE               0x80000000  // = 1 => ignore DS available checks
  216.  
  217. //
  218. // Flags for IDsDisplaySpecifier::GetIcon / GetIconLocation
  219. //
  220. #define DSGIF_ISNORMAL                  0x0000000   // = icon is in normal state (default)
  221. #define DSGIF_ISOPEN                    0x0000001   // = icon is in open state
  222. #define DSGIF_ISDISABLED                0x0000002   // = icon is in a disabled state
  223. #define DSGIF_ISMASK                    0x000000f
  224. #define DSGIF_GETDEFAULTICON            0x0000010   // = 1 => if no icon then get default (from shell32.dll)
  225. #define DSGIF_DEFAULTISCONTAINER        0x0000020   // = 1 => if returning default icon, return it as a container
  226.  
  227. //
  228. // Flags for IDsDisplaySpecifier::IsClassContainer
  229. //
  230. #define DSICCF_IGNORETREATASLEAF        0x00000001  // = 1 => igore the "treatAsLeaf" and use only schema information
  231.  
  232. //
  233. // Callback function used for IDsDisplaySpecifier::EnumClassAttributes
  234. //
  235.  
  236. #define DSECAF_NOTLISTED               0x00000001  // = 1 => hide from the field drop down in the query UI
  237.  
  238. typedef HRESULT (CALLBACK *LPDSENUMATTRIBUTES)(LPARAM lParam, LPCWSTR pszAttributeName, LPCWSTR pszDisplayName, DWORD dwFlags);
  239.  
  240. //
  241. // IDsDisplaySpecifier::GetClassCreationInfo information
  242. //
  243.  
  244. #define DSCCIF_HASWIZARDDIALOG          0x00000001  // = 1 => return the wizard dialog CLSID
  245. #define DSCCIF_HASWIZARDPRIMARYPAGE     0x00000002  // = 1 => returning a primary wizard dlg CLSID
  246.  
  247. typedef struct
  248. {
  249.     DWORD dwFlags;
  250.     CLSID clsidWizardDialog;
  251.     CLSID clsidWizardPrimaryPage;
  252.     DWORD cWizardExtensions;            // how many extension CLSIDs?
  253.     CLSID aWizardExtensions[1];
  254. } DSCLASSCREATIONINFO, * LPDSCLASSCREATIONINFO;
  255.  
  256. //
  257. // IDsDisplaySpecifier - a COM object for interacting with display specifiers
  258. //
  259.  
  260. #undef  INTERFACE
  261. #define INTERFACE IDsDisplaySpecifier
  262.  
  263. DECLARE_INTERFACE_(IDsDisplaySpecifier, IUnknown)
  264. {
  265.     // *** IUnknown methods ***
  266.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID * ppvObj) PURE;
  267.     STDMETHOD_(ULONG,AddRef)(THIS)  PURE;
  268.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  269.  
  270.     // *** IDsDisplaySpecifier methods ***
  271.     STDMETHOD(SetServer)(THIS_ LPCWSTR pszServer, LPCWSTR pszUserName, LPCWSTR pszPassword, DWORD dwFlags) PURE;
  272.     STDMETHOD(SetLanguageID)(THIS_ LANGID langid) PURE;
  273.     STDMETHOD(GetDisplaySpecifier)(THIS_ LPCWSTR pszObjectClass, REFIID riid, void **ppv) PURE;
  274.     STDMETHOD(GetIconLocation)(THIS_ LPCWSTR pszObjectClass, DWORD dwFlags, LPWSTR pszBuffer, INT cchBuffer, INT *presid) PURE;
  275.     STDMETHOD_(HICON, GetIcon)(THIS_ LPCWSTR pszObjectClass, DWORD dwFlags, INT cxIcon, INT cyIcon) PURE;
  276.     STDMETHOD(GetFriendlyClassName)(THIS_ LPCWSTR pszObjectClass, LPWSTR pszBuffer, INT cchBuffer) PURE;
  277.     STDMETHOD(GetFriendlyAttributeName)(THIS_ LPCWSTR pszObjectClass, LPCWSTR pszAttributeName, LPWSTR pszBuffer, UINT cchBuffer) PURE;
  278.     STDMETHOD_(BOOL, IsClassContainer)(THIS_ LPCWSTR pszObjectClass, LPCWSTR pszADsPath, DWORD dwFlags) PURE;
  279.     STDMETHOD(GetClassCreationInfo)(THIS_ LPCWSTR pszObjectClass, LPDSCLASSCREATIONINFO* ppdscci) PURE;
  280.     STDMETHOD(EnumClassAttributes)(THIS_ LPCWSTR pszObjectClass, LPDSENUMATTRIBUTES pcbEnum, LPARAM lParam) PURE;
  281.     STDMETHOD_(ADSTYPE, GetAttributeADsType)(LPCWSTR pszAttributeName) PURE;
  282. };
  283.  
  284.  
  285. //---------------------------------------------------------------------------//
  286. //
  287. // DsBrowseForContainer
  288. // --------------------
  289. //  Provides a container browser similar to the SHBrowseForFolder, except
  290. //  targetting the DS.
  291. //
  292. // In:
  293. //  pInfo -> DSBROWSEINFO structure
  294. //
  295. // Out:
  296. //  == IDOK/IDCANCEL depending on buttons, -1 if error
  297. //
  298. //---------------------------------------------------------------------------//
  299.  
  300. typedef struct
  301. {
  302.     DWORD           cbStruct;       // size of structure in bytes
  303.     HWND            hwndOwner;      // dialog owner
  304.     LPCWSTR         pszCaption;     // dialog caption text (can be NULL)
  305.     LPCWSTR         pszTitle;       // displayed above the tree view control (can be NULL)
  306.     LPCWSTR         pszRoot;        // ADS path to root (NULL == root of DS namespace)
  307.     LPWSTR          pszPath;        // [in/out] initial selection & returned path (required)
  308.     ULONG           cchPath;        // size of pszPath buffer in characters
  309.     DWORD           dwFlags;
  310.     BFFCALLBACK     pfnCallback;    // callback function (see SHBrowseForFolder)
  311.     LPARAM          lParam;         // passed to pfnCallback as lpUserData
  312.     DWORD           dwReturnFormat; // ADS_FORMAT_* (default is ADS_FORMAT_X500_NO_SERVER)
  313.     LPCWSTR         pUserName;      // Username and Password to authenticate against DS with  
  314.     LPCWSTR         pPassword;
  315.     LPWSTR          pszObjectClass; // UNICODE string for the object class
  316.     ULONG           cchObjectClass;
  317. } DSBROWSEINFOW, *PDSBROWSEINFOW;
  318.  
  319. typedef struct
  320. {
  321.     DWORD           cbStruct;
  322.     HWND            hwndOwner;
  323.     LPCSTR          pszCaption;
  324.     LPCSTR          pszTitle;
  325.     LPCWSTR         pszRoot;        // ADS paths are always UNICODE
  326.     LPWSTR          pszPath;        // ditto
  327.     ULONG           cchPath;
  328.     DWORD           dwFlags;
  329.     BFFCALLBACK     pfnCallback;
  330.     LPARAM          lParam;
  331.     DWORD           dwReturnFormat;
  332.     LPCWSTR         pUserName;      // Username and Password to authenticate against DS with  
  333.     LPCWSTR         pPassword;
  334.     LPWSTR          pszObjectClass; // object class of the selected object
  335.     ULONG           cchObjectClass;
  336. } DSBROWSEINFOA, *PDSBROWSEINFOA;
  337.  
  338. #ifdef UNICODE
  339. #define DSBROWSEINFO   DSBROWSEINFOW
  340. #define PDSBROWSEINFO  PDSBROWSEINFOW
  341. #else
  342. #define DSBROWSEINFO   DSBROWSEINFOA
  343. #define PDSBROWSEINFO  PDSBROWSEINFOA
  344. #endif
  345.  
  346. // DSBROWSEINFO flags
  347. #define DSBI_NOBUTTONS          0x00000001  // NOT TVS_HASBUTTONS
  348. #define DSBI_NOLINES            0x00000002  // NOT TVS_HASLINES
  349. #define DSBI_NOLINESATROOT      0x00000004  // NOT TVS_LINESATROOT
  350. #define DSBI_CHECKBOXES         0x00000100  // TVS_CHECKBOXES
  351. #define DSBI_NOROOT             0x00010000  // don't include pszRoot in tree (its children become top level nodes)
  352. #define DSBI_INCLUDEHIDDEN      0x00020000  // display hidden objects
  353. #define DSBI_EXPANDONOPEN       0x00040000  // expand to the path specified in pszPath when opening the dialog
  354. #define DSBI_ENTIREDIRECTORY    0x00090000  // browse the entire directory (defaults to having DSBI_NOROOT set)
  355. #define DSBI_RETURN_FORMAT      0x00100000  // dwReturnFormat field is valid
  356. #define DSBI_HASCREDENTIALS     0x00200000  // pUserName & pPassword are valid
  357. #define DSBI_IGNORETREATASLEAF  0x00400000  // ignore the treat as leaf flag when calling IsClassContainer
  358. #define DSBI_SIMPLEAUTHENTICATE 0x00800000  // don't use secure authentication to DS
  359. #define DSBI_RETURNOBJECTCLASS  0x01000000  // return object class of selected object
  360.  
  361. #define DSB_MAX_DISPLAYNAME_CHARS   64
  362.  
  363. typedef struct
  364. {
  365.     DWORD           cbStruct;
  366.     LPCWSTR         pszADsPath;     // ADS paths are always Unicode
  367.     LPCWSTR         pszClass;       // ADS properties are always Unicode
  368.     DWORD           dwMask;
  369.     DWORD           dwState;
  370.     DWORD           dwStateMask;
  371.     WCHAR           szDisplayName[DSB_MAX_DISPLAYNAME_CHARS];
  372.     WCHAR           szIconLocation[MAX_PATH];
  373.     INT             iIconResID;
  374. } DSBITEMW, *PDSBITEMW;
  375.  
  376. typedef struct
  377. {
  378.     DWORD           cbStruct;
  379.     LPCWSTR         pszADsPath;     // ADS paths are always Unicode
  380.     LPCWSTR         pszClass;       // ADS properties are always Unicode
  381.     DWORD           dwMask;
  382.     DWORD           dwState;
  383.     DWORD           dwStateMask;
  384.     CHAR            szDisplayName[DSB_MAX_DISPLAYNAME_CHARS];
  385.     CHAR            szIconLocation[MAX_PATH];
  386.     INT             iIconResID;
  387. } DSBITEMA, *PDSBITEMA;
  388.  
  389. #ifdef UNICODE
  390. #define DSBITEM     DSBITEMW
  391. #define PDSBITEM    PDSBITEMW
  392. #else
  393. #define DSBITEM     DSBITEMA
  394. #define PDSBITEM    PDSBITEMA
  395. #endif
  396.  
  397. // DSBITEM mask flags
  398. #define DSBF_STATE              0x00000001
  399. #define DSBF_ICONLOCATION       0x00000002
  400. #define DSBF_DISPLAYNAME        0x00000004
  401.  
  402. // DSBITEM state flags
  403. #define DSBS_CHECKED            0x00000001
  404. #define DSBS_HIDDEN             0x00000002
  405. #define DSBS_ROOT               0x00000004
  406.  
  407. //
  408. // this message is sent to the callback to see if it wants to insert or modify 
  409. // the item that is about to be inserted into the view.
  410. //
  411.  
  412. #define DSBM_QUERYINSERTW       100 // lParam = PDSBITEMW (state, icon & name may be modified). Return TRUE if handled.
  413. #define DSBM_QUERYINSERTA       101 // lParam = PDSBITEMA (state, icon & name may be modified). Return TRUE if handled.
  414.  
  415. #ifdef UNICODE
  416. #define DSBM_QUERYINSERT DSBM_QUERYINSERTW
  417. #else
  418. #define DSBM_QUERYINSERT DSBM_QUERYINSERTA
  419. #endif
  420.  
  421. //
  422. // Called before we change the state of the icon (on tree collapse/expand)
  423. //
  424.  
  425. #define DSBM_CHANGEIMAGESTATE   102 // lParam = adspath.  Return TRUE/FALSE top allow/disallow
  426.  
  427. //
  428. // The dialog receives a WM_HELP
  429. //
  430.  
  431. #define DSBM_HELP               103 // lParam == LPHELPINFO structure
  432.  
  433. //
  434. // The dialog receives a WM_CONTEXTMENU, DSBID_xxx are the control ID's for this
  435. // dialog so that you can display suitable help.
  436. //
  437.  
  438. #define DSBM_CONTEXTMENU        104 // lParam == window handle to retrieve help for
  439.  
  440.  
  441. //
  442. // These are the control IDs for the controls in the dialog.   The callback can use
  443. // these to modify the contents of the dialog as required.
  444. //
  445.  
  446. #define DSBID_BANNER            256
  447. #define DSBID_CONTAINERLIST     257
  448.  
  449. //
  450. // API exported for browsing for containers.
  451. //
  452.  
  453. STDAPI_(int) DsBrowseForContainerW(PDSBROWSEINFOW pInfo);
  454. STDAPI_(int) DsBrowseForContainerA(PDSBROWSEINFOA pInfo);
  455.  
  456. #ifdef UNICODE
  457. #define DsBrowseForContainer    DsBrowseForContainerW
  458. #else
  459. #define DsBrowseForContainer    DsBrowseForContainerA
  460. #endif
  461.  
  462.  
  463. //BUGBUG: these are here to keep old clients building - remove soon
  464. STDAPI_(HICON) DsGetIcon(DWORD dwFlags, LPWSTR pszObjectClass, INT cxImage, INT cyImage);
  465. STDAPI DsGetFriendlyClassName(LPWSTR pszObjectClass, LPWSTR pszBuffer, UINT cchBuffer);
  466.  
  467.  
  468. #endif  // GUID_DEFS_ONLY
  469. #pragma option pop /*P_O_Pop*/
  470. #endif
  471.