bd6d6fbc81f0195ab4dcb01e9493025a71008986
[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 typedef struct IEThreadParamBlock
29 {
30 long offset0;
31 DWORD dwFlags;
32 long offset8;
33 IUnknown * offsetC;
34 long offset10;
35 IUnknown * offset14;
36 LPITEMIDLIST directoryPIDL; // 0x18
37 char offset1C[0x70-0x1C]; // unknown contents -- 0x1C..0x6c
38 IUnknown * offset70;
39 long offset74; // unknown contents
40 IUnknown * offset78;
41 LPITEMIDLIST offset7C;
42 LPITEMIDLIST offset80;
43 LONG offset84;
44 LONG offset88;
45 LONG offset8C;
46 LONG offset90;
47 LONG offset94;
48 LONG offset98;
49 LONG offset9C;
50 LONG offsetA0;
51 char offsetA4[0xD8-0xA4]; // unknown contents -- 0xA4..0xD8
52 LONG offsetD8;
53 char offsetDC[0xF8-0xDC]; // unknown contents -- 0xDC..0xF8
54 IUnknown * offsetF8; // instance explorer
55 LONG offsetFC; // unknown contents
56 } IE_THREAD_PARAM_BLOCK, *PIE_THREAD_PARAM_BLOCK;
57
58 typedef struct ExplorerCommandLineParseResults
59 {
60 LPWSTR strPath;
61 LPITEMIDLIST pidlPath;
62 DWORD dwFlags;
63 DWORD offsetC;
64 DWORD offset10;
65 DWORD offset14;
66 DWORD offset18;
67 DWORD offset1C;
68 LPITEMIDLIST pidlRoot;
69 DWORD offset24;
70 DWORD offset28;
71 DWORD offset2C;
72 DWORD offset30;
73 GUID guidInproc;
74 } EXPLORER_CMDLINE_PARSE_RESULTS, *PEXPLORER_CMDLINE_PARSE_RESULTS;
75
76 #define SH_EXPLORER_CMDLINE_FLAG_ONE 0x00000001
77 #define SH_EXPLORER_CMDLINE_FLAG_S 0x00000002
78 // unknown/unused 0x00000004
79 #define SH_EXPLORER_CMDLINE_FLAG_E 0x00000008
80 // unknown/unused 0x00000010
81 // unknown/unused 0x00000020
82 #define SH_EXPLORER_CMDLINE_FLAG_SELECT 0x00000040
83 #define SH_EXPLORER_CMDLINE_FLAG_EMBED 0x00000080
84 // unknown/unused 0x00000100
85 #define SH_EXPLORER_CMDLINE_FLAG_IDLIST 0x00000200
86 #define SH_EXPLORER_CMDLINE_FLAG_INPROC 0x00000400
87 // unknown/unused 0x00000800
88 #define SH_EXPLORER_CMDLINE_FLAG_NOUI 0x00001000
89 // unknown/unused 0x00002000
90 #define SH_EXPLORER_CMDLINE_FLAG_N 0x00004000
91 // unknown/unused 0x00008000
92 // unknown/unused 0x00010000
93 #define SH_EXPLORER_CMDLINE_FLAG_SEPARATE 0x00020000
94 // unknown/unused 0x00040000
95 // unknown/unused 0x00080000
96 // unknown/unused 0x00100000
97 // unknown/unused 0x00200000
98 // unknown/unused 0x00400000
99 // unknown/unused 0x00800000
100 // unknown/unused 0x01000000
101 #define SH_EXPLORER_CMDLINE_FLAG_STRING 0x02000000
102
103 #define WM_EXPLORER_OPEN_NEW_WINDOW (WM_USER+11)
104 #define WM_EXPLORER_1037 (WM_USER+13)
105
106 void WINAPI InitOCHostClass(long param8);
107 long WINAPI SHOpenFolderWindow(PIE_THREAD_PARAM_BLOCK parameters);
108 void WINAPI SHCreateSavedWindows(void);
109 BOOL WINAPI SHCreateFromDesktop(PEXPLORER_CMDLINE_PARSE_RESULTS parseResults);
110 UINT WINAPI SHExplorerParseCmdLine(PEXPLORER_CMDLINE_PARSE_RESULTS pParseResults);
111 void WINAPI UEMRegisterNotify(long param8, long paramC);
112 HRESULT WINAPI SHCreateBandForPidl(LPCITEMIDLIST param8, IUnknown *paramC, BOOL param10);
113 HRESULT WINAPI SHPidlFromDataObject(IDataObject *param8, long *paramC, long param10, FILEDESCRIPTORW *param14);
114 long WINAPI IDataObject_GetDeskBandState(long param8);
115 PIE_THREAD_PARAM_BLOCK WINAPI SHCreateIETHREADPARAM(long param8, long paramC, IUnknown *param10, IUnknown *param14);
116 PIE_THREAD_PARAM_BLOCK WINAPI SHCloneIETHREADPARAM(PIE_THREAD_PARAM_BLOCK param);
117 long WINAPI SHParseIECommandLine(long param8, long paramC);
118 void WINAPI SHDestroyIETHREADPARAM(PIE_THREAD_PARAM_BLOCK param);
119 BOOL WINAPI SHOnCWMCommandLine(HANDLE hSharedInfo);
120 LPITEMIDLIST WINAPI Channel_GetFolderPidl(void);
121 IUnknown *WINAPI ChannelBand_Create(LPITEMIDLIST pidl);
122 HRESULT WINAPI Channels_SetBandInfoSFB(IUnknown *param8);
123 HRESULT WINAPI IUnknown_SetBandInfoSFB(IUnknown *param8, long paramC);
124 HRESULT WINAPI Channel_QuickLaunch(void);
125 HRESULT WINAPI SHGetNavigateTarget(long param8, long paramC, long param10, long param14);
126 HRESULT WINAPI GetInfoTip(IUnknown *param8, long paramC, LPTSTR *param10, long cchMax);
127 HRESULT WINAPI SHEnumClassesOfCategories(ULONG cImplemented, CATID *pImplemented, ULONG cRequired, CATID *pRequired, IEnumGUID **out);
128 HRESULT WINAPI SHWriteClassesOfCategories(long param8, long paramC, long param10, long param14, long param18, long param1C, long param20);
129 BOOL WINAPI SHIsExplorerBrowser(void);
130 HRESULT WINAPI SHOpenNewFrame(LPITEMIDLIST pidl, IUnknown *paramC, long param10, DWORD dwFlags);
131
132 #ifdef __cplusplus
133 } /* extern "C" */
134 #endif /* defined(__cplusplus) */
135
136 #endif /* __BROWSEUI_UNDOC_H */