Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenbrowseuiord.cpp
Go to the documentation of this file.
00001 /* 00002 * ReactOS browseui 00003 * 00004 * Copyright 2009 Andrew Hill <ash77 at domain reactos.org> 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU Lesser General Public 00008 * License as published by the Free Software Foundation; either 00009 * version 2.1 of the License, or (at your option) any later version. 00010 * 00011 * This library is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 * Lesser General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU Lesser General Public 00017 * License along with this library; if not, write to the Free Software 00018 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00019 */ 00020 00021 #include "precomp.h" 00022 00023 extern DWORD WINAPI BrowserThreadProc(LPVOID lpThreadParameter); 00024 00025 /************************************************************************* 00026 * InitOCHostClass [BROWSEUI.101] 00027 */ 00028 extern "C" void WINAPI InitOCHostClass(long param8) 00029 { 00030 // forwards to shdocvw 00031 } 00032 00033 /************************************************************************* 00034 * SHOpenFolderWindow [BROWSEUI.102] 00035 */ 00036 extern "C" long WINAPI SHOpenFolderWindow(IEThreadParamBlock *param8) 00037 { 00038 return 0; 00039 } 00040 00041 /************************************************************************* 00042 * SHCreateSavedWindows [BROWSEUI.105] 00043 * Called to recreate explorer windows from previous session 00044 */ 00045 extern "C" void WINAPI SHCreateSavedWindows() 00046 { 00047 } 00048 00049 /************************************************************************* 00050 * SHCreateFromDesktop [BROWSEUI.106] 00051 * parameter is a FolderInfo 00052 */ 00053 extern "C" long WINAPI SHCreateFromDesktop(long param8) 00054 { 00055 return -1; 00056 } 00057 00058 /************************************************************************* 00059 * SHExplorerParseCmdLine [BROWSEUI.107] 00060 */ 00061 extern "C" long WINAPI SHExplorerParseCmdLine(LPCTSTR commandLine) 00062 { 00063 return -1; 00064 } 00065 00066 /************************************************************************* 00067 * UEMRegisterNotify [BROWSEUI.118] 00068 */ 00069 extern "C" void WINAPI UEMRegisterNotify(long param8, long paramC) 00070 { 00071 } 00072 00073 /************************************************************************* 00074 * SHCreateBandForPidl [BROWSEUI.120] 00075 */ 00076 extern "C" HRESULT WINAPI SHCreateBandForPidl(LPCITEMIDLIST param8, IUnknown *paramC, BOOL param10) 00077 { 00078 return E_NOTIMPL; 00079 } 00080 00081 /************************************************************************* 00082 * SHPidlFromDataObject [BROWSEUI.121] 00083 */ 00084 extern "C" HRESULT WINAPI SHPidlFromDataObject(IDataObject *param8, long *paramC, long param10, FILEDESCRIPTORW *param14) 00085 { 00086 return E_NOTIMPL; 00087 } 00088 00089 /************************************************************************* 00090 * IDataObject_GetDeskBandState [BROWSEUI.122] 00091 */ 00092 extern "C" long WINAPI IDataObject_GetDeskBandState(long param8) 00093 { 00094 return -1; 00095 } 00096 00097 /************************************************************************* 00098 * SHCreateIETHREADPARAM [BROWSEUI.123] 00099 */ 00100 extern "C" IEThreadParamBlock *WINAPI SHCreateIETHREADPARAM(long param8, long paramC, IUnknown *param10, IUnknown *param14) 00101 { 00102 IEThreadParamBlock *result; 00103 00104 result = (IEThreadParamBlock *)LocalAlloc(LMEM_ZEROINIT, 256); 00105 if (result == NULL) 00106 return NULL; 00107 result->offset0 = param8; 00108 result->offset8 = paramC; 00109 result->offsetC = param10; 00110 if (param10 != NULL) 00111 param10->AddRef(); 00112 result->offset14 = param14; 00113 if (param14 != NULL) 00114 param14->AddRef(); 00115 return result; 00116 } 00117 00118 /************************************************************************* 00119 * SHCloneIETHREADPARAM [BROWSEUI.124] 00120 */ 00121 extern "C" IEThreadParamBlock *WINAPI SHCloneIETHREADPARAM(IEThreadParamBlock *param) 00122 { 00123 IEThreadParamBlock *result; 00124 00125 result = (IEThreadParamBlock *)LocalAlloc(LMEM_FIXED, 256); 00126 if (result == NULL) 00127 return NULL; 00128 memcpy(result, param, 0x40 * 4); 00129 if (result->directoryPIDL != NULL) 00130 result->directoryPIDL = ILClone(result->directoryPIDL); 00131 if (result->offset7C != NULL) 00132 result->offset7C = ILClone(result->offset7C); 00133 if (result->offset80 != NULL) 00134 result->offset80 = ILClone(result->offset80); 00135 if (result->offset70 != NULL) 00136 result->offset70->AddRef(); 00137 #if 0 00138 if (result->offsetC != NULL) 00139 result->offsetC->Method2C(); 00140 #endif 00141 return result; 00142 } 00143 00144 /************************************************************************* 00145 * SHParseIECommandLine [BROWSEUI.125] 00146 */ 00147 extern "C" long WINAPI SHParseIECommandLine(long param8, long paramC) 00148 { 00149 return -1; 00150 } 00151 00152 /************************************************************************* 00153 * SHDestroyIETHREADPARAM [BROWSEUI.126] 00154 */ 00155 extern "C" void WINAPI SHDestroyIETHREADPARAM(IEThreadParamBlock *param) 00156 { 00157 if (param == NULL) 00158 return; 00159 if (param->directoryPIDL != NULL) 00160 ILFree(param->directoryPIDL); 00161 if (param->offset7C != NULL) 00162 ILFree(param->offset7C); 00163 if ((param->offset4 & 0x80000) == 0 && param->offset80 != NULL) 00164 ILFree(param->offset80); 00165 if (param->offset14 != NULL) 00166 param->offset14->Release(); 00167 if (param->offset70 != NULL) 00168 param->offset70->Release(); 00169 if (param->offset78 != NULL) 00170 param->offset78->Release(); 00171 if (param->offsetC != NULL) 00172 param->offsetC->Release(); 00173 if (param->offsetF8 != NULL) 00174 param->offsetF8->Release(); 00175 LocalFree(param); 00176 } 00177 00178 /************************************************************************* 00179 * SHOnCWMCommandLine [BROWSEUI.127] 00180 */ 00181 extern "C" HRESULT WINAPI SHOnCWMCommandLine(long param8) 00182 { 00183 return E_NOTIMPL; 00184 } 00185 00186 /************************************************************************* 00187 * Channel_GetFolderPidl [BROWSEUI.128] 00188 */ 00189 extern "C" LPITEMIDLIST WINAPI Channel_GetFolderPidl() 00190 { 00191 return NULL; 00192 } 00193 00194 /************************************************************************* 00195 * ChannelBand_Create [BROWSEUI.129] 00196 */ 00197 extern "C" IUnknown *WINAPI ChannelBand_Create(LPITEMIDLIST pidl) 00198 { 00199 return NULL; 00200 } 00201 00202 /************************************************************************* 00203 * Channels_SetBandInfoSFB [BROWSEUI.130] 00204 */ 00205 extern "C" HRESULT WINAPI Channels_SetBandInfoSFB(IUnknown *param8) 00206 { 00207 return E_NOTIMPL; 00208 } 00209 00210 /************************************************************************* 00211 * IUnknown_SetBandInfoSFB [BROWSEUI.131] 00212 */ 00213 extern "C" HRESULT WINAPI IUnknown_SetBandInfoSFB(IUnknown *param8, long paramC) 00214 { 00215 return E_NOTIMPL; 00216 } 00217 00218 /************************************************************************* 00219 * Channel_QuickLaunch [BROWSEUI.133] 00220 */ 00221 extern "C" HRESULT WINAPI Channel_QuickLaunch() 00222 { 00223 return E_NOTIMPL; 00224 } 00225 00226 /************************************************************************* 00227 * SHGetNavigateTarget [BROWSEUI.134] 00228 */ 00229 extern "C" HRESULT WINAPI SHGetNavigateTarget(long param8, long paramC, long param10, long param14) 00230 { 00231 return E_NOTIMPL; 00232 } 00233 00234 /************************************************************************* 00235 * GetInfoTip [BROWSEUI.135] 00236 */ 00237 extern "C" HRESULT WINAPI GetInfoTip(IUnknown *param8, long paramC, LPTSTR *param10, long cchMax) 00238 { 00239 return E_NOTIMPL; 00240 } 00241 00242 /************************************************************************* 00243 * SHEnumClassesOfCategories [BROWSEUI.136] 00244 */ 00245 extern "C" HRESULT WINAPI SHEnumClassesOfCategories(long param8, long paramC, long param10, long param14, long param18) 00246 { 00247 return E_NOTIMPL; 00248 } 00249 00250 /************************************************************************* 00251 * SHWriteClassesOfCategories [BROWSEUI.137] 00252 */ 00253 extern "C" HRESULT WINAPI SHWriteClassesOfCategories(long param8, long paramC, long param10, long param14, long param18, long param1C, long param20) 00254 { 00255 return E_NOTIMPL; 00256 } 00257 00258 /************************************************************************* 00259 * SHIsExplorerBrowser [BROWSEUI.138] 00260 */ 00261 extern "C" BOOL WINAPI SHIsExplorerBrowser() 00262 { 00263 return TRUE; 00264 } 00265 00266 // 75FA56C1h 00267 // (pidl, 0, -1, 1) 00268 // this function should handle creating a new process if needed, but I'm leaving that out for now 00269 // this function always opens a new window - it does NOT check for duplicates 00270 /************************************************************************* 00271 * SHOpenNewFrame [BROWSEUI.103] 00272 */ 00273 extern "C" HRESULT WINAPI SHOpenNewFrame(LPITEMIDLIST pidl, IUnknown *paramC, long param10, long param14) 00274 { 00275 IEThreadParamBlock *parameters; 00276 HANDLE threadHandle; 00277 DWORD threadID; 00278 00279 parameters = SHCreateIETHREADPARAM(0, 1, paramC, NULL); 00280 if (parameters == NULL) 00281 { 00282 ILFree(pidl); 00283 return E_OUTOFMEMORY; 00284 } 00285 if (paramC != NULL) 00286 parameters->offset10 = param10; 00287 parameters->directoryPIDL = pidl; 00288 parameters->offset4 = param14; 00289 threadHandle = CreateThread(NULL, 0x10000, BrowserThreadProc, parameters, 0, &threadID); 00290 if (threadHandle != NULL) 00291 { 00292 CloseHandle(threadHandle); 00293 return S_OK; 00294 } 00295 SHDestroyIETHREADPARAM(parameters); 00296 return E_FAIL; 00297 } Generated on Sun May 27 2012 04:22:54 for ReactOS by
1.7.6.1
|