ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

browseuiord.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.