4 * Copyright 2009 Andrew Hill <ash77 at domain reactos.org>
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 #ifndef __BROWSEUI_UNDOC_H
22 #define __BROWSEUI_UNDOC_H
26 #endif /* defined(__cplusplus) */
28 // Name is IETHREADPARAM according to symbols / mangled function names
30 typedef struct IEThreadParamBlock
34 DWORD dwFlags
; // 0x08
36 IUnknown
* offsetC
; // 0x10
37 long offset10
; // 0x18
38 char padding1
[4]; // 0x1c
39 IUnknown
* offset14
; // 0x20
40 LPITEMIDLIST directoryPIDL
; // 0x28
41 WCHAR awsz_30
[21]; // 0x30
42 WCHAR awszEventName
[21]; // 0x5A
43 char padding2
[4]; // 0x84
44 IUnknown
* offset70
; // 0x88
45 long offset74
; // 0x90 unknown contents
46 char padding3
[4]; // 0x94
47 IUnknown
* offset78
; // 0x98
48 LPITEMIDLIST offset7C
; // 0xa0
49 LPITEMIDLIST offset80
; // 0xa8
50 LONG offset84
; // 0xb0
51 LONG offset88
; // 0xb4
52 LONG offset8C
; // 0xb8
53 LONG offset90
; // 0xbc
54 LONG offset94
; // 0xc0
55 LONG offset98
; // 0xc4
56 LONG offset9C
; // 0xc8
57 LONG offsetA0
; // 0xcc
59 LONG offsetD8
; // 0x104
63 IUnknown
* offsetF8
; // 0x128 instance explorer
65 } IE_THREAD_PARAM_BLOCK
, * PIE_THREAD_PARAM_BLOCK
;
67 typedef struct IEThreadParamBlock
75 LPITEMIDLIST directoryPIDL
; // 0x18
76 char offset1C
[0x70-0x1C]; // unknown contents -- 0x1C..0x6c
78 long offset74
; // unknown contents
80 LPITEMIDLIST offset7C
;
81 LPITEMIDLIST offset80
;
90 char offsetA4
[0xD8-0xA4]; // unknown contents -- 0xA4..0xD8
92 char offsetDC
[0xF8-0xDC]; // unknown contents -- 0xDC..0xF8
93 IUnknown
* offsetF8
; // instance explorer
94 LONG offsetFC
; // unknown contents
95 } IE_THREAD_PARAM_BLOCK
, *PIE_THREAD_PARAM_BLOCK
;
98 typedef struct ExplorerCommandLineParseResults
101 LPITEMIDLIST pidlPath
;
108 LPITEMIDLIST pidlRoot
;
111 } EXPLORER_CMDLINE_PARSE_RESULTS
, *PEXPLORER_CMDLINE_PARSE_RESULTS
;
113 #define SH_EXPLORER_CMDLINE_FLAG_ONE 0x00000001
114 #define SH_EXPLORER_CMDLINE_FLAG_S 0x00000002
115 // unknown/unused 0x00000004
116 #define SH_EXPLORER_CMDLINE_FLAG_E 0x00000008
117 // unknown/unused 0x00000010
118 // unknown/unused 0x00000020
119 #define SH_EXPLORER_CMDLINE_FLAG_SELECT 0x00000040
120 #define SH_EXPLORER_CMDLINE_FLAG_EMBED 0x00000080
121 // unknown/unused 0x00000100
122 #define SH_EXPLORER_CMDLINE_FLAG_IDLIST 0x00000200
123 #define SH_EXPLORER_CMDLINE_FLAG_INPROC 0x00000400
124 // unknown/unused 0x00000800
125 #define SH_EXPLORER_CMDLINE_FLAG_NOUI 0x00001000
126 // unknown/unused 0x00002000
127 #define SH_EXPLORER_CMDLINE_FLAG_N 0x00004000
128 // unknown/unused 0x00008000
129 // unknown/unused 0x00010000
130 #define SH_EXPLORER_CMDLINE_FLAG_SEPARATE 0x00020000
131 // unknown/unused 0x00040000
132 // unknown/unused 0x00080000
133 // unknown/unused 0x00100000
134 // unknown/unused 0x00200000
135 // unknown/unused 0x00400000
136 // unknown/unused 0x00800000
137 // unknown/unused 0x01000000
138 #define SH_EXPLORER_CMDLINE_FLAG_STRING 0x02000000
140 #define WM_EXPLORER_OPEN_NEW_WINDOW (WM_USER+11)
141 #define WM_EXPLORER_1037 (WM_USER+13)
143 void WINAPI
InitOCHostClass(long param8
);
144 long WINAPI
SHOpenFolderWindow(PIE_THREAD_PARAM_BLOCK parameters
);
145 void WINAPI
SHCreateSavedWindows(void);
146 BOOL WINAPI
SHCreateFromDesktop(PEXPLORER_CMDLINE_PARSE_RESULTS parseResults
);
147 UINT_PTR WINAPI
SHExplorerParseCmdLine(PEXPLORER_CMDLINE_PARSE_RESULTS pParseResults
);
148 void WINAPI
UEMRegisterNotify(long param8
, long paramC
);
149 HRESULT WINAPI
SHCreateBandForPidl(LPCITEMIDLIST param8
, IUnknown
*paramC
, BOOL param10
);
150 HRESULT WINAPI
SHPidlFromDataObject(IDataObject
*param8
, long *paramC
, long param10
, FILEDESCRIPTORW
*param14
);
151 long WINAPI
IDataObject_GetDeskBandState(long param8
);
152 PIE_THREAD_PARAM_BLOCK WINAPI
SHCreateIETHREADPARAM(long param8
, long paramC
, IUnknown
*param10
, IUnknown
*param14
);
153 PIE_THREAD_PARAM_BLOCK WINAPI
SHCloneIETHREADPARAM(PIE_THREAD_PARAM_BLOCK param
);
154 long WINAPI
SHParseIECommandLine(long param8
, long paramC
);
155 void WINAPI
SHDestroyIETHREADPARAM(PIE_THREAD_PARAM_BLOCK param
);
156 BOOL WINAPI
SHOnCWMCommandLine(HANDLE hSharedInfo
);
157 LPITEMIDLIST WINAPI
Channel_GetFolderPidl(void);
158 IUnknown
*WINAPI
ChannelBand_Create(LPITEMIDLIST pidl
);
159 HRESULT WINAPI
Channels_SetBandInfoSFB(IUnknown
*param8
);
160 HRESULT WINAPI
IUnknown_SetBandInfoSFB(IUnknown
*param8
, long paramC
);
161 HRESULT WINAPI
Channel_QuickLaunch(void);
162 HRESULT WINAPI
SHGetNavigateTarget(long param8
, long paramC
, long param10
, long param14
);
163 HRESULT WINAPI
GetInfoTip(IUnknown
*param8
, long paramC
, LPTSTR
*param10
, long cchMax
);
164 HRESULT WINAPI
SHEnumClassesOfCategories(ULONG cImplemented
, CATID
*pImplemented
, ULONG cRequired
, CATID
*pRequired
, IEnumGUID
**out
);
165 HRESULT WINAPI
SHWriteClassesOfCategories(long param8
, long paramC
, long param10
, long param14
, long param18
, long param1C
, long param20
);
166 BOOL WINAPI
SHIsExplorerBrowser(void);
167 HRESULT WINAPI
SHOpenNewFrame(LPITEMIDLIST pidl
, IUnknown
*paramC
, long param10
, DWORD dwFlags
);
170 #define INTERFACE IACLCustomMRU
171 DECLARE_INTERFACE_IID_(IACLCustomMRU
, IUnknown
, "F729FC5E-8769-4F3E-BDB2-D7B50FD2275B")
173 // *** IUnknown methods ***
174 STDMETHOD(QueryInterface
) (THIS_ REFIID riid
, void **ppv
) PURE
;
175 STDMETHOD_(ULONG
, AddRef
) (THIS
)PURE
;
176 STDMETHOD_(ULONG
, Release
) (THIS
)PURE
;
178 // *** IACLCustomMRU specific methods ***
179 STDMETHOD(Initialize
) (THIS_ LPCWSTR pwszMRURegKey
, DWORD dwMax
) PURE
;
180 STDMETHOD(AddMRUString
) (THIS_ LPCWSTR pwszEntry
) PURE
;
186 #endif /* defined(__cplusplus) */
188 #endif /* __BROWSEUI_UNDOC_H */