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

persist.c
Go to the documentation of this file.
00001 /*
00002  * Implementation of IPersist interfaces for WebBrowser control
00003  *
00004  * Copyright 2001 John R. Sheets (for CodeWeavers)
00005  * Copyright 2005 Jacek Caban
00006  *
00007  * This library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU Lesser General Public
00009  * License as published by the Free Software Foundation; either
00010  * version 2.1 of the License, or (at your option) any later version.
00011  *
00012  * This library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015  * Lesser General Public License for more details.
00016  *
00017  * You should have received a copy of the GNU Lesser General Public
00018  * License along with this library; if not, write to the Free Software
00019  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00020  */
00021 
00022 #include "wine/debug.h"
00023 #include "shdocvw.h"
00024 
00025 WINE_DEFAULT_DEBUG_CHANNEL(shdocvw);
00026 
00027 /**********************************************************************
00028  * Implement the IPersistStorage interface
00029  */
00030 
00031 #define PERSTORAGE_THIS(ifce) DEFINE_THIS(WebBrowser, PersistStorage, iface)
00032 
00033 static HRESULT WINAPI PersistStorage_QueryInterface(IPersistStorage *iface,
00034         REFIID riid, LPVOID *ppobj)
00035 {
00036     WebBrowser *This = PERSTORAGE_THIS(iface);
00037     return IWebBrowser_QueryInterface(WEBBROWSER(This), riid, ppobj);
00038 }
00039 
00040 static ULONG WINAPI PersistStorage_AddRef(IPersistStorage *iface)
00041 {
00042     WebBrowser *This = PERSTORAGE_THIS(iface);
00043     return IWebBrowser_AddRef(WEBBROWSER(This));
00044 }
00045 
00046 static ULONG WINAPI PersistStorage_Release(IPersistStorage *iface)
00047 {
00048     WebBrowser *This = PERSTORAGE_THIS(iface);
00049     return IWebBrowser_Release(WEBBROWSER(This));
00050 }
00051 
00052 static HRESULT WINAPI PersistStorage_GetClassID(IPersistStorage *iface, CLSID *pClassID)
00053 {
00054     WebBrowser *This = PERSTORAGE_THIS(iface);
00055     FIXME("(%p)->(%p)\n", This, pClassID);
00056     return E_NOTIMPL;
00057 }
00058 
00059 static HRESULT WINAPI PersistStorage_IsDirty(IPersistStorage *iface)
00060 {
00061     WebBrowser *This = PERSTORAGE_THIS(iface);
00062     FIXME("(%p)\n", This);
00063     return E_NOTIMPL;
00064 }
00065 
00066 static HRESULT WINAPI PersistStorage_InitNew(IPersistStorage *iface, LPSTORAGE pStg)
00067 {
00068     WebBrowser *This = PERSTORAGE_THIS(iface);
00069     FIXME("(%p)->(%p)\n", This, pStg);
00070     return S_OK;
00071 }
00072 
00073 static HRESULT WINAPI PersistStorage_Load(IPersistStorage *iface, LPSTORAGE pStg)
00074 {
00075     WebBrowser *This = PERSTORAGE_THIS(iface);
00076     FIXME("(%p)->(%p)\n", This, pStg);
00077     return E_NOTIMPL;
00078 }
00079 
00080 static HRESULT WINAPI PersistStorage_Save(IPersistStorage *iface, LPSTORAGE pStg,
00081         BOOL fSameAsLoad)
00082 {
00083     WebBrowser *This = PERSTORAGE_THIS(iface);
00084     FIXME("(%p)->(%p %x)\n", This, pStg, fSameAsLoad);
00085     return E_NOTIMPL;
00086 }
00087 
00088 static HRESULT WINAPI PersistStorage_SaveCompleted(IPersistStorage *iface, LPSTORAGE pStgNew)
00089 {
00090     WebBrowser *This = PERSTORAGE_THIS(iface);
00091     FIXME("(%p)->(%p)\n", This, pStgNew);
00092     return E_NOTIMPL;
00093 }
00094 
00095 static const IPersistStorageVtbl PersistStorageVtbl =
00096 {
00097     PersistStorage_QueryInterface,
00098     PersistStorage_AddRef,
00099     PersistStorage_Release,
00100     PersistStorage_GetClassID,
00101     PersistStorage_IsDirty,
00102     PersistStorage_InitNew,
00103     PersistStorage_Load,
00104     PersistStorage_Save,
00105     PersistStorage_SaveCompleted
00106 };
00107 
00108 /**********************************************************************
00109  * Implement the IPersistMemory interface
00110  */
00111 
00112 #define PERMEMORY_THIS(ifce) DEFINE_THIS(WebBrowser, PersistMemory, iface)
00113 
00114 static HRESULT WINAPI PersistMemory_QueryInterface(IPersistMemory *iface,
00115         REFIID riid, LPVOID *ppobj)
00116 {
00117     WebBrowser *This = PERMEMORY_THIS(iface);
00118     return IWebBrowser_QueryInterface(WEBBROWSER(This), riid, ppobj);
00119 }
00120 
00121 static ULONG WINAPI PersistMemory_AddRef(IPersistMemory *iface)
00122 {
00123     WebBrowser *This = PERMEMORY_THIS(iface);
00124     return IWebBrowser_AddRef(WEBBROWSER(This));
00125 }
00126 
00127 static ULONG WINAPI PersistMemory_Release(IPersistMemory *iface)
00128 {
00129     WebBrowser *This = PERMEMORY_THIS(iface);
00130     return IWebBrowser_Release(WEBBROWSER(This));
00131 }
00132 
00133 static HRESULT WINAPI PersistMemory_GetClassID(IPersistMemory *iface, CLSID *pClassID)
00134 {
00135     WebBrowser *This = PERMEMORY_THIS(iface);
00136     FIXME("(%p)->(%p)\n", This, pClassID);
00137     return E_NOTIMPL;
00138 }
00139 
00140 static HRESULT WINAPI PersistMemory_IsDirty(IPersistMemory *iface)
00141 {
00142     WebBrowser *This = PERMEMORY_THIS(iface);
00143     FIXME("(%p)\n", This);
00144     return E_NOTIMPL;
00145 }
00146 
00147 static HRESULT WINAPI PersistMemory_InitNew(IPersistMemory *iface)
00148 {
00149     WebBrowser *This = PERMEMORY_THIS(iface);
00150     FIXME("(%p)\n", This);
00151     return S_OK;
00152 }
00153 
00154 static HRESULT WINAPI PersistMemory_Load(IPersistMemory *iface, LPVOID pMem, ULONG cbSize)
00155 {
00156     WebBrowser *This = PERMEMORY_THIS(iface);
00157     FIXME("(%p)->(%p %x)\n", This, pMem, cbSize);
00158     return S_OK;
00159 }
00160 
00161 static HRESULT WINAPI PersistMemory_Save(IPersistMemory *iface, LPVOID pMem,
00162         BOOL fClearDirty, ULONG cbSize)
00163 {
00164     WebBrowser *This = PERMEMORY_THIS(iface);
00165     FIXME("(%p)->(%p %x %x)\n", This, pMem, fClearDirty, cbSize);
00166     return E_NOTIMPL;
00167 }
00168 
00169 static HRESULT WINAPI PersistMemory_GetSizeMax(IPersistMemory *iface, ULONG *pCbSize)
00170 {
00171     WebBrowser *This = PERMEMORY_THIS(iface);
00172     FIXME("(%p)->(%p)\n", This, pCbSize);
00173     return E_NOTIMPL;
00174 }
00175 
00176 static const IPersistMemoryVtbl PersistMemoryVtbl =
00177 {
00178     PersistMemory_QueryInterface,
00179     PersistMemory_AddRef,
00180     PersistMemory_Release,
00181     PersistMemory_GetClassID,
00182     PersistMemory_IsDirty,
00183     PersistMemory_Load,
00184     PersistMemory_Save,
00185     PersistMemory_GetSizeMax,
00186     PersistMemory_InitNew
00187 };
00188 
00189 /**********************************************************************
00190  * Implement the IPersistStreamInit interface
00191  */
00192 
00193 #define PERSTRINIT_THIS(iface) DEFINE_THIS(WebBrowser, PersistStreamInit, iface)
00194 
00195 static HRESULT WINAPI PersistStreamInit_QueryInterface(IPersistStreamInit *iface,
00196         REFIID riid, LPVOID *ppobj)
00197 {
00198     WebBrowser *This = PERSTRINIT_THIS(iface);
00199     return IWebBrowser_QueryInterface(WEBBROWSER(This), riid, ppobj);
00200 }
00201 
00202 static ULONG WINAPI PersistStreamInit_AddRef(IPersistStreamInit *iface)
00203 {
00204     WebBrowser *This = PERSTRINIT_THIS(iface);
00205     return IWebBrowser_AddRef(WEBBROWSER(This));
00206 }
00207 
00208 static ULONG WINAPI PersistStreamInit_Release(IPersistStreamInit *iface)
00209 {
00210     WebBrowser *This = PERSTRINIT_THIS(iface);
00211     return IWebBrowser_Release(WEBBROWSER(This));
00212 }
00213 
00214 static HRESULT WINAPI PersistStreamInit_GetClassID(IPersistStreamInit *iface, CLSID *pClassID)
00215 {
00216     WebBrowser *This = PERSTRINIT_THIS(iface);
00217     return IPersistStorage_GetClassID(PERSTORAGE(This), pClassID);
00218 }
00219 
00220 static HRESULT WINAPI PersistStreamInit_IsDirty(IPersistStreamInit *iface)
00221 {
00222     WebBrowser *This = PERSTRINIT_THIS(iface);
00223     return IPersistStorage_IsDirty(PERSTORAGE(This));
00224 }
00225 
00226 static HRESULT WINAPI PersistStreamInit_Load(IPersistStreamInit *iface, LPSTREAM pStg)
00227 {
00228     WebBrowser *This = PERSTRINIT_THIS(iface);
00229     FIXME("(%p)->(%p)\n", This, pStg);
00230     return S_OK;
00231 }
00232 
00233 static HRESULT WINAPI PersistStreamInit_Save(IPersistStreamInit *iface, LPSTREAM pStg,
00234         BOOL fSameAsLoad)
00235 {
00236     WebBrowser *This = PERSTRINIT_THIS(iface);
00237     FIXME("(%p)->(%p %x)\n", This, pStg, fSameAsLoad);
00238     return E_NOTIMPL;
00239 }
00240 
00241 static HRESULT WINAPI PersistStreamInit_GetSizeMax(IPersistStreamInit *iface,
00242         ULARGE_INTEGER *pcbSize)
00243 {
00244     WebBrowser *This = PERSTRINIT_THIS(iface);
00245     FIXME("(%p)->(%p)\n", This, pcbSize);
00246     return E_NOTIMPL;
00247 }
00248 
00249 static HRESULT WINAPI PersistStreamInit_InitNew(IPersistStreamInit *iface)
00250 {
00251     WebBrowser *This = PERSTRINIT_THIS(iface);
00252     FIXME("(%p)\n", This);
00253     return S_OK;
00254 }
00255 
00256 #undef PERSTRINIT_THIS
00257 
00258 static const IPersistStreamInitVtbl PersistStreamInitVtbl =
00259 {
00260     PersistStreamInit_QueryInterface,
00261     PersistStreamInit_AddRef,
00262     PersistStreamInit_Release,
00263     PersistStreamInit_GetClassID,
00264     PersistStreamInit_IsDirty,
00265     PersistStreamInit_Load,
00266     PersistStreamInit_Save,
00267     PersistStreamInit_GetSizeMax,
00268     PersistStreamInit_InitNew
00269 };
00270 
00271 void WebBrowser_Persist_Init(WebBrowser *This)
00272 {
00273     This->lpPersistStorageVtbl    = &PersistStorageVtbl;
00274     This->lpPersistMemoryVtbl     = &PersistMemoryVtbl;
00275     This->lpPersistStreamInitVtbl = &PersistStreamInitVtbl;
00276 }

Generated on Sun May 27 2012 04:25:07 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.