Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenpersist.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
1.7.6.1
|