Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

107 lines
2.7 KiB

  1. #include "windows.h"
  2. #include "windowsx.h"
  3. #include "winspool.h"
  4. #include "commctrl.h"
  5. #include "commdlg.h"
  6. #include "shellapi.h"
  7. #include "shlobj.h"
  8. #include "shlobjp.h"
  9. #include "shlwapi.h"
  10. #include "shlwapip.h"
  11. #include <shfusion.h>
  12. #include "atlbase.h"
  13. #include "winuserp.h"
  14. #include "comctrlp.h"
  15. #include "shsemip.h"
  16. #include "shlapip.h"
  17. #include "shellp.h"
  18. #include "htmlhelp.h"
  19. #include "cfdefs.h"
  20. #include "activeds.h"
  21. #include "iadsp.h"
  22. #include "dsclient.h"
  23. #include "dsclintp.h"
  24. #include "cmnquery.h"
  25. #include "cmnquryp.h"
  26. #include "dsquery.h"
  27. #include "dsqueryp.h"
  28. #include "common.h"
  29. #include "resource.h"
  30. #include "dialogs.h"
  31. #include "iids.h"
  32. #include "cstrings.h"
  33. #include "query.h"
  34. #include "forms.h"
  35. #include "helpids.h"
  36. // debug flags
  37. #define TRACE_CORE 0x00000001
  38. #define TRACE_HANDLER 0x00000002
  39. #define TRACE_FORMS 0x00000004
  40. #define TRACE_SCOPES 0x00000008
  41. #define TRACE_UI 0x00000010
  42. #define TRACE_VIEW 0x00000020
  43. #define TRACE_QUERYTHREAD 0x00000040
  44. #define TRACE_DATAOBJ 0x00000080
  45. #define TRACE_CACHE 0x00000100
  46. #define TRACE_MENU 0x00000200
  47. #define TRACE_IO 0x00000400
  48. #define TRACE_VIEWMENU 0x00000800
  49. #define TRACE_PWELL 0x00001000
  50. #define TRACE_FIELDCHOOSER 0x00002000
  51. #define TRACE_MYCONTEXTMENU 0x00004000
  52. #define TRACE_FRAME 0x00080000
  53. #define TRACE_QUERY 0x00100000
  54. #define TRACE_FRAMEDLG 0x00200000
  55. #define TRACE_ALWAYS 0xffffffff // use with caution
  56. #define DSQUERY_HELPFILE TEXT("dsclient.hlp")
  57. #define DS_POLICY TEXT("Software\\Policies\\Microsoft\\Windows\\Directory UI")
  58. extern HINSTANCE g_hInstance;
  59. #define GLOBAL_HINSTANCE (g_hInstance)
  60. STDAPI_(void) DllAddRef();
  61. STDAPI_(void) DllRelease();
  62. // internal objects
  63. STDAPI CPersistQuery_CreateInstance(LPTSTR pszPath, IPersistQuery **pppq);
  64. STDAPI CCommonQuery_CreateInstance(IUnknown* punkOuter, IUnknown** ppunk, LPCOBJECTINFO poi);
  65. STDAPI CDsFind_CreateInstance(IUnknown* punkOuter, IUnknown** ppunk, LPCOBJECTINFO poi);
  66. STDAPI CDsFolderProperties_CreateInstance(IUnknown* punkOuter, IUnknown** ppunk, LPCOBJECTINFO poi);
  67. // data object manangement
  68. typedef struct
  69. {
  70. LPWSTR pszPath;
  71. LPWSTR pszObjectClass;
  72. BOOL fIsContainer:1;
  73. }DATAOBJECTITEM;
  74. STDAPI CDataObject_CreateInstance(HDSA hdsaObjects, BOOL fAdmin, REFIID riid, void **ppv);
  75. STDAPI_(void) FreeDataObjectDSA(HDSA hdsaObjects);
  76. // UI handling stuff
  77. #define UIKEY_CLASS 0
  78. #define UIKEY_BASECLASS 1
  79. #define UIKEY_ROOT 2
  80. #define UIKEY_MAX 3
  81. HRESULT GetKeysForClass(LPWSTR pObjectClass, BOOL fIsContainer, INT cKeys, HKEY* aKeys);
  82. void TidyKeys(INT cKeys, HKEY* aKeys);
  83. HRESULT ShowObjectProperties(HWND hwndParent, LPDATAOBJECT pDataObject);