[SHELL32] Remove 2 redundant initializations
[reactos.git] / sdk / include / reactos / browseui_undoc.h
1 /*
2 * ReactOS shlwapi
3 *
4 * Copyright 2009 Andrew Hill <ash77 at domain reactos.org>
5 *
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.
10 *
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.
15 *
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
19 */
20
21 #ifndef __BROWSEUI_UNDOC_H
22 #define __BROWSEUI_UNDOC_H
23
24 #ifdef __cplusplus
25 extern "C" {
26 #endif /* defined(__cplusplus) */
27
28 // Name is IETHREADPARAM according to symbols / mangled function names
29 #ifdef _WIN64
30 typedef struct IEThreadParamBlock
31 {
32 long offset0; // 0x00
33 UCHAR gap4[4];
34 DWORD dwFlags; // 0x08
35 long offset8; // 0x0c
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
58 char field_B4[52];
59 LONG offsetD8; // 0x104
60 UCHAR gap108[24];
61 DWORD dword120;
62 DWORD dword124;
63 IUnknown* offsetF8; // 0x128 instance explorer
64 UCHAR byteflags_130;
65 } IE_THREAD_PARAM_BLOCK, * PIE_THREAD_PARAM_BLOCK;
66 #else
67 typedef struct IEThreadParamBlock
68 {
69 long offset0;
70 DWORD dwFlags;
71 long offset8;
72 IUnknown * offsetC;
73 long offset10;
74 IUnknown * offset14;
75 LPITEMIDLIST directoryPIDL; // 0x18
76 char offset1C[0x70-0x1C]; // unknown contents -- 0x1C..0x6c
77 IUnknown * offset70;
78 long offset74; // unknown contents
79 IUnknown * offset78;
80 LPITEMIDLIST offset7C;
81 LPITEMIDLIST offset80;
82 LONG offset84;
83 LONG offset88;
84 LONG offset8C;
85 LONG offset90;
86 LONG offset94;
87 LONG offset98;
88 LONG offset9C;
89 LONG offsetA0;
90 char offsetA4[0xD8-0xA4]; // unknown contents -- 0xA4..0xD8
91 LONG offsetD8;
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;
96 #endif
97
98 typedef struct ExplorerCommandLineParseResults
99 {
100 LPWSTR strPath;
101 LPITEMIDLIST pidlPath;
102 DWORD dwFlags;
103 int nCmdShow;
104 DWORD offset10;
105 DWORD offset14;
106 DWORD offset18;
107 DWORD offset1C;
108 LPITEMIDLIST pidlRoot;
109 CLSID clsid;
110 GUID guidInproc;
111 } EXPLORER_CMDLINE_PARSE_RESULTS, *PEXPLORER_CMDLINE_PARSE_RESULTS;
112
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
139
140 #define WM_EXPLORER_OPEN_NEW_WINDOW (WM_USER+11)
141 #define WM_EXPLORER_1037 (WM_USER+13)
142
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);
168
169
170 #define INTERFACE IACLCustomMRU
171 DECLARE_INTERFACE_IID_(IACLCustomMRU, IUnknown, "F729FC5E-8769-4F3E-BDB2-D7B50FD2275B")
172 {
173 // *** IUnknown methods ***
174 STDMETHOD(QueryInterface) (THIS_ REFIID riid, void **ppv) PURE;
175 STDMETHOD_(ULONG, AddRef) (THIS)PURE;
176 STDMETHOD_(ULONG, Release) (THIS)PURE;
177
178 // *** IACLCustomMRU specific methods ***
179 STDMETHOD(Initialize) (THIS_ LPCWSTR pwszMRURegKey, DWORD dwMax) PURE;
180 STDMETHOD(AddMRUString) (THIS_ LPCWSTR pwszEntry) PURE;
181 };
182 #undef INTERFACE
183
184 #ifdef __cplusplus
185 } /* extern "C" */
186 #endif /* defined(__cplusplus) */
187
188 #endif /* __BROWSEUI_UNDOC_H */