diff options
Diffstat (limited to 'complus/ignupg.c')
-rw-r--r-- | complus/ignupg.c | 202 |
1 files changed, 0 insertions, 202 deletions
diff --git a/complus/ignupg.c b/complus/ignupg.c deleted file mode 100644 index 009d5db1..00000000 --- a/complus/ignupg.c +++ /dev/null @@ -1,202 +0,0 @@ -/* ignupg.c - COM+ class IGnuPG - * Copyright (C) 2000 Werner Koch (dd9jn) - * - * This file is part of GPGME. - * - * GPGME is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GPGME is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - */ - - -#include <config.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> -#include <assert.h> -#include <time.h> -#include <windows.h> - -#define INITGUID -#include "ignupg.h" - -/* - * Declare the interface implementation structures - */ -typedef struct IGnuPGImpl IGnuPGImpl; -typedef struct IClassFactoryImpl IClassFactoryImpl; - - -struct IGnuPGImpl { - /* IUnknown required stuff */ - ICOM_VFIELD (IGnuPG); - DWORD ref; - /* Our stuff */ - int foo; -}; - - -struct IClassFactoryImpl { - /* IUnknown fields */ - ICOM_VFIELD(IClassFactory); - DWORD ref; -}; - - - -/********************************************************** - ************** IGnuPG Implementation ******************* - **********************************************************/ - -static HRESULT WINAPI -IGnuPGImpl_QueryInterface (IGnuPG *iface, REFIID refiid, LPVOID *obj) -{ - ICOM_THIS (IGnuPGImpl,iface); - - fprintf (stderr,"(%p)->QueryInterface(%s,%p)\n", - This, "debugstr_guid(refiid)", obj); - if ( IsEqualGUID (&IID_IUnknown, refiid) - || !IsEqualGUID (&IID_IGnuPG, refiid) ) { - *obj = iface; - return 0; - } - *obj = NULL; - return E_NOINTERFACE; -} - - -static ULONG WINAPI -IGnuPGImpl_AddRef (IGnuPG *iface) -{ - ICOM_THIS (IGnuPGImpl,iface); - - return ++This->ref; -} - - -static ULONG WINAPI -IGnuPGImpl_Release (IGnuPG *iface) -{ - ICOM_THIS (IGnuPGImpl,iface); - - if (--This->ref) - return This->ref; - - HeapFree(GetProcessHeap(),0,iface); - return 0; -} - - - - -static ICOM_VTABLE(IGnuPG) gnupg_vtbl = -{ - /* IUnknow methods */ - ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE - IGnuPGImpl_QueryInterface, - IGnuPGImpl_AddRef, - IGnuPGImpl_Release, - /* Our methods */ - -}; - - - -/*************************************************************** - ****************** GnuPG Factory **************************** - ***************************************************************/ - -static HRESULT WINAPI -GnuPGFactory_QueryInterface (IClassFactory *iface, REFIID refiid, LPVOID *obj) -{ - /*ICOM_THIS(IClassFactoryImpl,iface);*/ - return E_NOINTERFACE; -} - -static ULONG WINAPI -GnuPGFactory_AddRef (IClassFactory *iface) -{ - ICOM_THIS(IClassFactoryImpl,iface); - return ++(This->ref); -} - -static ULONG WINAPI -GnuPGFactory_Release (IClassFactory *iface) -{ - ICOM_THIS(IClassFactoryImpl,iface); - return --(This->ref); -} - -static HRESULT WINAPI -GnuPGFactory_CreateInstance (IClassFactory *iface, IUnknown *outer, - REFIID refiid, LPVOID *r_obj ) -{ - /*ICOM_THIS(IClassFactoryImpl,iface);*/ - - if ( IsEqualGUID (&IID_IGnuPG, refiid) ) { - IGnuPGImpl *obj; - - obj = HeapAlloc (GetProcessHeap(), 0, sizeof *obj ); - if ( !obj) - return E_OUTOFMEMORY; - - ICOM_VTBL(obj) = &gnupg_vtbl; - obj->ref = 1; - *r_obj = obj; - return 0; - } - *r_obj = NULL; - return E_NOINTERFACE; -} - -static HRESULT WINAPI -GnuPGFactory_LockServer (IClassFactory *iface, BOOL dolock ) -{ - /*ICOM_THIS(IClassFactoryImpl,iface);*/ - return 0; -} - -static ICOM_VTABLE(IClassFactory) gnupg_factory_vtbl = { - ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE - GnuPGFactory_QueryInterface, - GnuPGFactory_AddRef, - GnuPGFactory_Release, - GnuPGFactory_CreateInstance, - GnuPGFactory_LockServer -}; -static IClassFactoryImpl GnuPG_CF = {&gnupg_factory_vtbl, 1 }; - - -IClassFactory * -gnupg_factory_new ( CLSID *r_clsid ) -{ - *r_clsid = CLSID_GnuPG; - IClassFactory_AddRef((IClassFactory*)&GnuPG_CF); - return (IClassFactory*)&GnuPG_CF; -} - -void -gnupg_factory_release ( IClassFactory *factory ) -{ - /* it's static - nothing to do */ -} - - - - - - - - - |