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

apps.c
Go to the documentation of this file.
00001 /*
00002  * Copyright 2009 Hans Leidekker for CodeWeavers
00003  *
00004  * This library is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU Lesser General Public
00006  * License as published by the Free Software Foundation; either
00007  * version 2.1 of the License, or (at your option) any later version.
00008  *
00009  * This library is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  * Lesser General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU Lesser General Public
00015  * License along with this library; if not, write to the Free Software
00016  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00017  */
00018 
00019 #include "config.h"
00020 #include <stdarg.h>
00021 #include <stdio.h>
00022 
00023 #define COBJMACROS
00024 
00025 #include "windef.h"
00026 #include "winbase.h"
00027 #include "winuser.h"
00028 #include "ole2.h"
00029 #include "netfw.h"
00030 
00031 #include "wine/debug.h"
00032 #include "wine/unicode.h"
00033 #include "hnetcfg_private.h"
00034 
00035 WINE_DEFAULT_DEBUG_CHANNEL(hnetcfg);
00036 
00037 typedef struct fw_app
00038 {
00039     INetFwAuthorizedApplication INetFwAuthorizedApplication_iface;
00040     LONG refs;
00041 } fw_app;
00042 
00043 static inline fw_app *impl_from_INetFwAuthorizedApplication( INetFwAuthorizedApplication *iface )
00044 {
00045     return CONTAINING_RECORD(iface, fw_app, INetFwAuthorizedApplication_iface);
00046 }
00047 
00048 static ULONG WINAPI fw_app_AddRef(
00049     INetFwAuthorizedApplication *iface )
00050 {
00051     fw_app *fw_app = impl_from_INetFwAuthorizedApplication( iface );
00052     return InterlockedIncrement( &fw_app->refs );
00053 }
00054 
00055 static ULONG WINAPI fw_app_Release(
00056     INetFwAuthorizedApplication *iface )
00057 {
00058     fw_app *fw_app = impl_from_INetFwAuthorizedApplication( iface );
00059     LONG refs = InterlockedDecrement( &fw_app->refs );
00060     if (!refs)
00061     {
00062         TRACE("destroying %p\n", fw_app);
00063         HeapFree( GetProcessHeap(), 0, fw_app );
00064     }
00065     return refs;
00066 }
00067 
00068 static HRESULT WINAPI fw_app_QueryInterface(
00069     INetFwAuthorizedApplication *iface,
00070     REFIID riid,
00071     void **ppvObject )
00072 {
00073     fw_app *This = impl_from_INetFwAuthorizedApplication( iface );
00074 
00075     TRACE("%p %s %p\n", This, debugstr_guid( riid ), ppvObject );
00076 
00077     if ( IsEqualGUID( riid, &IID_INetFwAuthorizedApplication ) ||
00078          IsEqualGUID( riid, &IID_IDispatch ) ||
00079          IsEqualGUID( riid, &IID_IUnknown ) )
00080     {
00081         *ppvObject = iface;
00082     }
00083     else
00084     {
00085         FIXME("interface %s not implemented\n", debugstr_guid(riid));
00086         return E_NOINTERFACE;
00087     }
00088     INetFwAuthorizedApplication_AddRef( iface );
00089     return S_OK;
00090 }
00091 
00092 static HRESULT WINAPI fw_app_GetTypeInfoCount(
00093     INetFwAuthorizedApplication *iface,
00094     UINT *pctinfo )
00095 {
00096     fw_app *This = impl_from_INetFwAuthorizedApplication( iface );
00097 
00098     FIXME("%p %p\n", This, pctinfo);
00099     return E_NOTIMPL;
00100 }
00101 
00102 static HRESULT WINAPI fw_app_GetTypeInfo(
00103     INetFwAuthorizedApplication *iface,
00104     UINT iTInfo,
00105     LCID lcid,
00106     ITypeInfo **ppTInfo )
00107 {
00108     fw_app *This = impl_from_INetFwAuthorizedApplication( iface );
00109 
00110     FIXME("%p %u %u %p\n", This, iTInfo, lcid, ppTInfo);
00111     return E_NOTIMPL;
00112 }
00113 
00114 static HRESULT WINAPI fw_app_GetIDsOfNames(
00115     INetFwAuthorizedApplication *iface,
00116     REFIID riid,
00117     LPOLESTR *rgszNames,
00118     UINT cNames,
00119     LCID lcid,
00120     DISPID *rgDispId )
00121 {
00122     fw_app *This = impl_from_INetFwAuthorizedApplication( iface );
00123 
00124     FIXME("%p %s %p %u %u %p\n", This, debugstr_guid(riid), rgszNames, cNames, lcid, rgDispId);
00125     return E_NOTIMPL;
00126 }
00127 
00128 static HRESULT WINAPI fw_app_Invoke(
00129     INetFwAuthorizedApplication *iface,
00130     DISPID dispIdMember,
00131     REFIID riid,
00132     LCID lcid,
00133     WORD wFlags,
00134     DISPPARAMS *pDispParams,
00135     VARIANT *pVarResult,
00136     EXCEPINFO *pExcepInfo,
00137     UINT *puArgErr )
00138 {
00139     fw_app *This = impl_from_INetFwAuthorizedApplication( iface );
00140 
00141     FIXME("%p %d %s %d %d %p %p %p %p\n", This, dispIdMember, debugstr_guid(riid),
00142           lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
00143     return E_NOTIMPL;
00144 }
00145 
00146 static HRESULT WINAPI fw_app_get_Name(
00147     INetFwAuthorizedApplication *iface,
00148     BSTR *name )
00149 {
00150     fw_app *This = impl_from_INetFwAuthorizedApplication( iface );
00151 
00152     FIXME("%p, %p\n", This, name);
00153     return E_NOTIMPL;
00154 }
00155 
00156 static HRESULT WINAPI fw_app_put_Name(
00157     INetFwAuthorizedApplication *iface,
00158     BSTR name )
00159 {
00160     fw_app *This = impl_from_INetFwAuthorizedApplication( iface );
00161 
00162     FIXME("%p, %s\n", This, debugstr_w(name));
00163     return S_OK;
00164 }
00165 
00166 static HRESULT WINAPI fw_app_get_ProcessImageFileName(
00167     INetFwAuthorizedApplication *iface,
00168     BSTR *imageFileName )
00169 {
00170     fw_app *This = impl_from_INetFwAuthorizedApplication( iface );
00171 
00172     FIXME("%p, %p\n", This, imageFileName);
00173     return E_NOTIMPL;
00174 }
00175 
00176 static HRESULT WINAPI fw_app_put_ProcessImageFileName(
00177     INetFwAuthorizedApplication *iface,
00178     BSTR imageFileName )
00179 {
00180     fw_app *This = impl_from_INetFwAuthorizedApplication( iface );
00181 
00182     FIXME("%p, %s\n", This, debugstr_w(imageFileName));
00183     return S_OK;
00184 }
00185 
00186 static HRESULT WINAPI fw_app_get_IpVersion(
00187     INetFwAuthorizedApplication *iface,
00188     NET_FW_IP_VERSION *ipVersion )
00189 {
00190     fw_app *This = impl_from_INetFwAuthorizedApplication( iface );
00191 
00192     FIXME("%p, %p\n", This, ipVersion);
00193     return E_NOTIMPL;
00194 }
00195 
00196 static HRESULT WINAPI fw_app_put_IpVersion(
00197     INetFwAuthorizedApplication *iface,
00198     NET_FW_IP_VERSION ipVersion )
00199 {
00200     fw_app *This = impl_from_INetFwAuthorizedApplication( iface );
00201 
00202     FIXME("%p, %u\n", This, ipVersion);
00203     return E_NOTIMPL;
00204 }
00205 
00206 static HRESULT WINAPI fw_app_get_Scope(
00207     INetFwAuthorizedApplication *iface,
00208     NET_FW_SCOPE *scope )
00209 {
00210     fw_app *This = impl_from_INetFwAuthorizedApplication( iface );
00211 
00212     FIXME("%p, %p\n", This, scope);
00213     return E_NOTIMPL;
00214 }
00215 
00216 static HRESULT WINAPI fw_app_put_Scope(
00217     INetFwAuthorizedApplication *iface,
00218     NET_FW_SCOPE scope )
00219 {
00220     fw_app *This = impl_from_INetFwAuthorizedApplication( iface );
00221 
00222     FIXME("%p, %u\n", This, scope);
00223     return E_NOTIMPL;
00224 }
00225 
00226 static HRESULT WINAPI fw_app_get_RemoteAddresses(
00227     INetFwAuthorizedApplication *iface,
00228     BSTR *remoteAddrs )
00229 {
00230     fw_app *This = impl_from_INetFwAuthorizedApplication( iface );
00231 
00232     FIXME("%p, %p\n", This, remoteAddrs);
00233     return E_NOTIMPL;
00234 }
00235 
00236 static HRESULT WINAPI fw_app_put_RemoteAddresses(
00237     INetFwAuthorizedApplication *iface,
00238     BSTR remoteAddrs )
00239 {
00240     fw_app *This = impl_from_INetFwAuthorizedApplication( iface );
00241 
00242     FIXME("%p, %s\n", This, debugstr_w(remoteAddrs));
00243     return E_NOTIMPL;
00244 }
00245 
00246 static HRESULT WINAPI fw_app_get_Enabled(
00247     INetFwAuthorizedApplication *iface,
00248     VARIANT_BOOL *enabled )
00249 {
00250     fw_app *This = impl_from_INetFwAuthorizedApplication( iface );
00251 
00252     FIXME("%p, %p\n", This, enabled);
00253 
00254     *enabled = VARIANT_FALSE;
00255     return S_OK;
00256 }
00257 
00258 static HRESULT WINAPI fw_app_put_Enabled(
00259     INetFwAuthorizedApplication *iface,
00260     VARIANT_BOOL enabled )
00261 {
00262     fw_app *This = impl_from_INetFwAuthorizedApplication( iface );
00263 
00264     FIXME("%p, %d\n", This, enabled);
00265     return S_OK;
00266 }
00267 
00268 static const struct INetFwAuthorizedApplicationVtbl fw_app_vtbl =
00269 {
00270     fw_app_QueryInterface,
00271     fw_app_AddRef,
00272     fw_app_Release,
00273     fw_app_GetTypeInfoCount,
00274     fw_app_GetTypeInfo,
00275     fw_app_GetIDsOfNames,
00276     fw_app_Invoke,
00277     fw_app_get_Name,
00278     fw_app_put_Name,
00279     fw_app_get_ProcessImageFileName,
00280     fw_app_put_ProcessImageFileName,
00281     fw_app_get_IpVersion,
00282     fw_app_put_IpVersion,
00283     fw_app_get_Scope,
00284     fw_app_put_Scope,
00285     fw_app_get_RemoteAddresses,
00286     fw_app_put_RemoteAddresses,
00287     fw_app_get_Enabled,
00288     fw_app_put_Enabled
00289 };
00290 
00291 HRESULT NetFwAuthorizedApplication_create( IUnknown *pUnkOuter, LPVOID *ppObj )
00292 {
00293     fw_app *fa;
00294 
00295     TRACE("(%p,%p)\n", pUnkOuter, ppObj);
00296 
00297     fa = HeapAlloc( GetProcessHeap(), 0, sizeof(*fa) );
00298     if (!fa) return E_OUTOFMEMORY;
00299 
00300     fa->INetFwAuthorizedApplication_iface.lpVtbl = &fw_app_vtbl;
00301     fa->refs = 1;
00302 
00303     *ppObj = &fa->INetFwAuthorizedApplication_iface;
00304 
00305     TRACE("returning iface %p\n", *ppObj);
00306     return S_OK;
00307 }
00308 typedef struct fw_apps
00309 {
00310     INetFwAuthorizedApplications INetFwAuthorizedApplications_iface;
00311     LONG refs;
00312 } fw_apps;
00313 
00314 static inline fw_apps *impl_from_INetFwAuthorizedApplications( INetFwAuthorizedApplications *iface )
00315 {
00316     return CONTAINING_RECORD(iface, fw_apps, INetFwAuthorizedApplications_iface);
00317 }
00318 
00319 static ULONG WINAPI fw_apps_AddRef(
00320     INetFwAuthorizedApplications *iface )
00321 {
00322     fw_apps *fw_apps = impl_from_INetFwAuthorizedApplications( iface );
00323     return InterlockedIncrement( &fw_apps->refs );
00324 }
00325 
00326 static ULONG WINAPI fw_apps_Release(
00327     INetFwAuthorizedApplications *iface )
00328 {
00329     fw_apps *fw_apps = impl_from_INetFwAuthorizedApplications( iface );
00330     LONG refs = InterlockedDecrement( &fw_apps->refs );
00331     if (!refs)
00332     {
00333         TRACE("destroying %p\n", fw_apps);
00334         HeapFree( GetProcessHeap(), 0, fw_apps );
00335     }
00336     return refs;
00337 }
00338 
00339 static HRESULT WINAPI fw_apps_QueryInterface(
00340     INetFwAuthorizedApplications *iface,
00341     REFIID riid,
00342     void **ppvObject )
00343 {
00344     fw_apps *This = impl_from_INetFwAuthorizedApplications( iface );
00345 
00346     TRACE("%p %s %p\n", This, debugstr_guid( riid ), ppvObject );
00347 
00348     if ( IsEqualGUID( riid, &IID_INetFwAuthorizedApplications ) ||
00349          IsEqualGUID( riid, &IID_IDispatch ) ||
00350          IsEqualGUID( riid, &IID_IUnknown ) )
00351     {
00352         *ppvObject = iface;
00353     }
00354     else
00355     {
00356         FIXME("interface %s not implemented\n", debugstr_guid(riid));
00357         return E_NOINTERFACE;
00358     }
00359     INetFwAuthorizedApplications_AddRef( iface );
00360     return S_OK;
00361 }
00362 
00363 static HRESULT WINAPI fw_apps_GetTypeInfoCount(
00364     INetFwAuthorizedApplications *iface,
00365     UINT *pctinfo )
00366 {
00367     fw_apps *This = impl_from_INetFwAuthorizedApplications( iface );
00368 
00369     FIXME("%p %p\n", This, pctinfo);
00370     return E_NOTIMPL;
00371 }
00372 
00373 static HRESULT WINAPI fw_apps_GetTypeInfo(
00374     INetFwAuthorizedApplications *iface,
00375     UINT iTInfo,
00376     LCID lcid,
00377     ITypeInfo **ppTInfo )
00378 {
00379     fw_apps *This = impl_from_INetFwAuthorizedApplications( iface );
00380 
00381     FIXME("%p %u %u %p\n", This, iTInfo, lcid, ppTInfo);
00382     return E_NOTIMPL;
00383 }
00384 
00385 static HRESULT WINAPI fw_apps_GetIDsOfNames(
00386     INetFwAuthorizedApplications *iface,
00387     REFIID riid,
00388     LPOLESTR *rgszNames,
00389     UINT cNames,
00390     LCID lcid,
00391     DISPID *rgDispId )
00392 {
00393     fw_apps *This = impl_from_INetFwAuthorizedApplications( iface );
00394 
00395     FIXME("%p %s %p %u %u %p\n", This, debugstr_guid(riid), rgszNames, cNames, lcid, rgDispId);
00396     return E_NOTIMPL;
00397 }
00398 
00399 static HRESULT WINAPI fw_apps_Invoke(
00400     INetFwAuthorizedApplications *iface,
00401     DISPID dispIdMember,
00402     REFIID riid,
00403     LCID lcid,
00404     WORD wFlags,
00405     DISPPARAMS *pDispParams,
00406     VARIANT *pVarResult,
00407     EXCEPINFO *pExcepInfo,
00408     UINT *puArgErr )
00409 {
00410     fw_apps *This = impl_from_INetFwAuthorizedApplications( iface );
00411 
00412     FIXME("%p %d %s %d %d %p %p %p %p\n", This, dispIdMember, debugstr_guid(riid),
00413           lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
00414     return E_NOTIMPL;
00415 }
00416 
00417 static HRESULT WINAPI fw_apps_get_Count(
00418     INetFwAuthorizedApplications *iface,
00419     LONG *count )
00420 {
00421     fw_apps *This = impl_from_INetFwAuthorizedApplications( iface );
00422 
00423     FIXME("%p, %p\n", This, count);
00424     return E_NOTIMPL;
00425 }
00426 
00427 static HRESULT WINAPI fw_apps_Add(
00428     INetFwAuthorizedApplications *iface,
00429     INetFwAuthorizedApplication *app )
00430 {
00431     fw_apps *This = impl_from_INetFwAuthorizedApplications( iface );
00432 
00433     FIXME("%p, %p\n", This, app);
00434     return S_OK;
00435 }
00436 
00437 static HRESULT WINAPI fw_apps_Remove(
00438     INetFwAuthorizedApplications *iface,
00439     BSTR imageFileName )
00440 {
00441     fw_apps *This = impl_from_INetFwAuthorizedApplications( iface );
00442 
00443     FIXME("%p, %s\n", This, debugstr_w(imageFileName));
00444     return S_OK;
00445 }
00446 
00447 static HRESULT WINAPI fw_apps_Item(
00448     INetFwAuthorizedApplications *iface,
00449     BSTR imageFileName,
00450     INetFwAuthorizedApplication **app )
00451 {
00452     fw_apps *This = impl_from_INetFwAuthorizedApplications( iface );
00453 
00454     TRACE("%p, %s, %p\n", This, debugstr_w(imageFileName), app);
00455     return NetFwAuthorizedApplication_create( NULL, (void **)app );
00456 }
00457 
00458 static HRESULT WINAPI fw_apps_get__NewEnum(
00459     INetFwAuthorizedApplications *iface,
00460     IUnknown **newEnum )
00461 {
00462     fw_apps *This = impl_from_INetFwAuthorizedApplications( iface );
00463 
00464     FIXME("%p, %p\n", This, newEnum);
00465     return E_NOTIMPL;
00466 }
00467 
00468 static const struct INetFwAuthorizedApplicationsVtbl fw_apps_vtbl =
00469 {
00470     fw_apps_QueryInterface,
00471     fw_apps_AddRef,
00472     fw_apps_Release,
00473     fw_apps_GetTypeInfoCount,
00474     fw_apps_GetTypeInfo,
00475     fw_apps_GetIDsOfNames,
00476     fw_apps_Invoke,
00477     fw_apps_get_Count,
00478     fw_apps_Add,
00479     fw_apps_Remove,
00480     fw_apps_Item,
00481     fw_apps_get__NewEnum
00482 };
00483 
00484 HRESULT NetFwAuthorizedApplications_create( IUnknown *pUnkOuter, LPVOID *ppObj )
00485 {
00486     fw_apps *fa;
00487 
00488     TRACE("(%p,%p)\n", pUnkOuter, ppObj);
00489 
00490     fa = HeapAlloc( GetProcessHeap(), 0, sizeof(*fa) );
00491     if (!fa) return E_OUTOFMEMORY;
00492 
00493     fa->INetFwAuthorizedApplications_iface.lpVtbl = &fw_apps_vtbl;
00494     fa->refs = 1;
00495 
00496     *ppObj = &fa->INetFwAuthorizedApplications_iface;
00497 
00498     TRACE("returning iface %p\n", *ppObj);
00499     return S_OK;
00500 }

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