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.

141 lines
3.8 KiB

  1. //
  2. // Defines IETHREADPARAM for shdocvw.dll and explorer.exe
  3. //
  4. #ifndef __IETHREAD_H__
  5. #define __IETHREAD_H__
  6. #include <desktopp.h>
  7. typedef struct
  8. {
  9. DWORD dwSize;
  10. UINT uFlags;
  11. int nShow;
  12. DWORD dwHwndCaller; // Must be DWORD for 32/64 interop
  13. DWORD dwHotKey;
  14. CLSID clsid;
  15. CLSID clsidInProc;
  16. UINT oidl; // Offset to pidl or 0
  17. UINT oidlSelect; // Offset to pidl or 0
  18. UINT oidlRoot; // Offset to pidl or 0
  19. UINT opszPath; // Offset to path or 0
  20. } NEWFOLDERBLOCK, *PNEWFOLDERBLOCK;
  21. typedef struct _WINVIEW
  22. {
  23. BOOL UNUSED:1; // unused
  24. BOOL bStdButtons:1; // Win95 called this bToolbar
  25. BOOL bStatusBar:1; // Win95
  26. BOOL bLinks:1; // IE3 called this bITBar
  27. BOOL bAddress:1; // IE4
  28. } WINVIEW;
  29. // the size in characters of the name of the Event used to signal IEXPLORE
  30. #define MAX_IEEVENTNAME (2+1+8+1+8+1)
  31. #undef INTERFACE
  32. #define INTERFACE IEFreeThreadedHandShake
  33. DECLARE_INTERFACE_(IEFreeThreadedHandShake, IUnknown)
  34. {
  35. // *** IUnknown methods ***
  36. STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
  37. STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  38. STDMETHOD_(ULONG,Release) (THIS) PURE;
  39. // *** IIEFreeThreadedHandShake methods ***
  40. STDMETHOD_(void, PutHevent) (THIS_ HANDLE hevent) PURE;
  41. STDMETHOD_(HANDLE, GetHevent) (THIS) PURE;
  42. STDMETHOD_(void, PutHresult) (THIS_ HRESULT hres) PURE;
  43. STDMETHOD_(HRESULT, GetHresult) (THIS) PURE;
  44. STDMETHOD_(IStream*, GetStream) (THIS) PURE;
  45. };
  46. #ifdef NO_MARSHALLING
  47. #undef INTERFACE
  48. #define INTERFACE IWindowStatus
  49. DECLARE_INTERFACE_(IWindowStatus, IUnknown)
  50. {
  51. // *** IUnknown methods ***
  52. STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
  53. STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  54. STDMETHOD_(ULONG,Release) (THIS) PURE;
  55. // *** IWindowStatus methods ***
  56. STDMETHOD(IsWindowActivated)() PURE;
  57. };
  58. #endif
  59. // NOTE: The IETHREADPARAM structure is used between shdocvw, shell32,
  60. // and browseui, so it cannot be modified after we ship, only extended.
  61. typedef struct
  62. {
  63. LPCWSTR pszCmdLine;
  64. UINT uFlags; // COF_ bits
  65. int nCmdShow;
  66. // these will always be set together
  67. ITravelLog *ptl;
  68. DWORD dwBrowserIndex;
  69. IEFreeThreadedHandShake* piehs; // caller (thread) owns it
  70. // these come from explorer's NEWFOLDERINFO
  71. LPITEMIDLIST pidl;
  72. WCHAR szDdeRegEvent[MAX_IEEVENTNAME];
  73. WCHAR szCloseEvent[MAX_IEEVENTNAME];
  74. IShellBrowser* psbCaller;
  75. HWND hwndCaller;
  76. ISplashScreen *pSplash;
  77. LPITEMIDLIST pidlSelect; // Only used if COF_SELECT
  78. LPITEMIDLIST pidlRoot; // Only used if COF_NEWROOT
  79. // 99/04/07 #141049 vtan: Overload pidlRoot with
  80. // HMONITOR information on Windows 2000. Check the
  81. // uFlags for COF_HASHMONITOR before using this.
  82. CLSID clsid; // Only used if COF_NEWROOT
  83. CLSID clsidInProc; // Only used if COF_INPROC
  84. // these come from explorer.exe's cabview struct
  85. WINDOWPLACEMENT wp;
  86. FOLDERSETTINGS fs;
  87. UINT wHotkey;
  88. WINVIEW wv;
  89. SHELLVIEWID m_vidRestore;
  90. DWORD m_dwViewPriority;
  91. long dwRegister; // The register that was gotten from RegisterPending
  92. IUnknown *punkRefProcess;
  93. BOOL fNoLocalFileWarning : 1;
  94. BOOL fDontUseHomePage : 1;
  95. BOOL fFullScreen : 1;
  96. BOOL fNoDragDrop : 1;
  97. BOOL fAutomation : 1;
  98. BOOL fCheckFirstOpen : 1;
  99. BOOL fDesktopChannel : 1;
  100. #ifdef UNIX
  101. BOOL fShouldStart : 1;
  102. #endif
  103. #ifdef NO_MARSHALLING
  104. BOOL fOnIEThread : 1;
  105. #endif //NO_MARSHALLING
  106. } IETHREADPARAM;
  107. #ifdef UNIX
  108. #define COF_HELPMODE 0x00010000 // Special mode for help display
  109. #endif
  110. #endif // __IETHREAD_H__