* The Shell.. for a long time we dreamed of having a compatible, properly working...
[reactos.git] / reactos / include / psdk / shlwapi_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 __SHLWAPI_UNDOC_H
22 #define __SHLWAPI_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 BOOL WINAPI SHAboutInfoA(LPSTR lpszDest, DWORD dwDestLen);
107 BOOL WINAPI SHAboutInfoW(LPWSTR lpszDest, DWORD dwDestLen);
108 HRESULT WINAPI IUnknown_QueryStatus(IUnknown *lpUnknown, REFGUID pguidCmdGroup, ULONG cCmds, OLECMD *prgCmds, OLECMDTEXT* pCmdText);
109 HRESULT WINAPI IUnknown_Exec(IUnknown* lpUnknown, REFGUID pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT* pvaIn, VARIANT* pvaOut);
110 LONG WINAPI SHSetWindowBits(HWND hwnd, INT offset, UINT wMask, UINT wFlags);
111 HWND WINAPI SHSetParentHwnd(HWND hWnd, HWND hWndParent);
112 HRESULT WINAPI ConnectToConnectionPoint(IUnknown *lpUnkSink, REFIID riid, BOOL bAdviseOnly, IUnknown *lpUnknown, LPDWORD lpCookie, IConnectionPoint **lppCP);
113 BOOL WINAPI SHIsSameObject(IUnknown *lpInt1, IUnknown *lpInt2);
114 HRESULT WINAPI IUnknown_GetWindow(IUnknown *lpUnknown, HWND *lphWnd);
115 HRESULT WINAPI IUnknown_SetOwner(IUnknown *pUnk, ULONG arg);
116 HRESULT WINAPI IUnknown_SetSite(IUnknown *obj, IUnknown *site);
117 HRESULT WINAPI IUnknown_GetClassID(IUnknown *lpUnknown, CLSID *lpClassId);
118 HRESULT WINAPI IUnknown_QueryService(IUnknown* lpUnknown, REFGUID sid, REFIID riid, LPVOID *lppOut);
119 HRESULT WINAPI IUnknown_QueryServiceExec(IUnknown *lpUnknown, REFIID service, const GUID *group, DWORD cmdId, DWORD cmdOpt, VARIANT *pIn, VARIANT *pOut);
120 HRESULT WINAPI IUnknown_UIActivateIO(IUnknown *unknown, BOOL activate, LPMSG msg);
121 BOOL WINAPI SHLoadMenuPopup(HINSTANCE hInst, LPCWSTR szName);
122 void WINAPI SHPropagateMessage(HWND hWnd, UINT uiMsgId, WPARAM wParam, LPARAM lParam, BOOL bSend);
123 DWORD WINAPI SHRemoveAllSubMenus(HMENU hMenu);
124 UINT WINAPI SHEnableMenuItem(HMENU hMenu, UINT wItemID, BOOL bEnable);
125 DWORD WINAPI SHCheckMenuItem(HMENU hMenu, UINT uID, BOOL bCheck);
126 DWORD WINAPI SHRegisterClassA(WNDCLASSA *wndclass);
127 BOOL WINAPI SHSimulateDrop(IDropTarget *pDrop, IDataObject *pDataObj, DWORD grfKeyState, PPOINTL lpPt, DWORD* pdwEffect);
128 HRESULT WINAPI IUnknown_TranslateAcceleratorOCS(IUnknown *lpUnknown, LPMSG lpMsg, DWORD dwModifiers);
129 HRESULT WINAPI IUnknown_OnFocusOCS(IUnknown *lpUnknown, BOOL fGotFocus);
130 HRESULT WINAPI IUnknown_HandleIRestrict(LPUNKNOWN lpUnknown, PVOID lpArg1, PVOID lpArg2, PVOID lpArg3, PVOID lpArg4);
131 HMENU WINAPI SHGetMenuFromID(HMENU hMenu, UINT uID);
132 DWORD WINAPI SHGetCurColorRes(void);
133 DWORD WINAPI SHWaitForSendMessageThread(HANDLE hand, DWORD dwTimeout);
134 HRESULT WINAPI SHIsExpandableFolder(LPSHELLFOLDER lpFolder, LPCITEMIDLIST pidl);
135 DWORD WINAPI SHFillRectClr(HDC hDC, LPCRECT pRect, COLORREF cRef);
136 int WINAPI SHSearchMapInt(const int *lpKeys, const int *lpValues, int iLen, int iKey);
137 VOID WINAPI IUnknown_Set(IUnknown **lppDest, IUnknown *lpUnknown);
138 HRESULT WINAPI MayQSForward(IUnknown* lpUnknown, PVOID lpReserved, REFGUID riidCmdGrp, ULONG cCmds, OLECMD *prgCmds, OLECMDTEXT *pCmdText);
139 HRESULT WINAPI MayExecForward(IUnknown* lpUnknown, INT iUnk, REFGUID pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut);
140 HRESULT WINAPI IsQSForward(REFGUID pguidCmdGroup,ULONG cCmds, OLECMD *prgCmds);
141 BOOL WINAPI SHIsChildOrSelf(HWND hParent, HWND hChild);
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 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(long param8, long paramC, long param10, long param14, long param18);
165 HRESULT WINAPI SHWriteClassesOfCategories(long param8, long paramC, long param10, long param14, long param18, long param1C, long param20);
166 BOOL WINAPI SHIsExplorerBrowser();
167 HRESULT WINAPI SHOpenNewFrame(LPITEMIDLIST pidl, IUnknown *paramC, long param10, DWORD dwFlags);
168
169 #ifdef __cplusplus
170 } /* extern "C" */
171 #endif /* defined(__cplusplus) */
172
173 #endif /* __SHLWAPI_UNDOC_H */