sti: Marshal WIA COM interfaces.
This commit is contained in:
parent
cf8fa5459a
commit
c6c25a442f
|
@ -117,6 +117,8 @@ dlls/rpcrt4/tests/server_s.c
|
|||
dlls/shdocvw/shdocvw_v1.tlb
|
||||
dlls/stdole2.tlb/std_ole_v2.tlb
|
||||
dlls/stdole32.tlb/std_ole_v1.tlb
|
||||
dlls/sti/sti_wia.h
|
||||
dlls/sti/sti_wia_p.c
|
||||
dlls/user.exe16
|
||||
dlls/wprocs.dll16
|
||||
include/activaut.h
|
||||
|
|
|
@ -4,13 +4,19 @@ SRCDIR = @srcdir@
|
|||
VPATH = @srcdir@
|
||||
MODULE = sti.dll
|
||||
IMPORTLIB = sti
|
||||
IMPORTS = uuid ole32 advapi32 kernel32
|
||||
IMPORTS = uuid ole32 oleaut32 rpcrt4 advapi32 kernel32
|
||||
EXTRADEFS = -DENTRY_PREFIX=STI_ -DPROXY_DELEGATION -DREGISTER_PROXY_DLL
|
||||
|
||||
C_SRCS = \
|
||||
regsvr.c \
|
||||
sti.c \
|
||||
sti_main.c
|
||||
|
||||
IDL_P_SRCS = \
|
||||
sti_wia.idl
|
||||
|
||||
EXTRA_OBJS = dlldata.o
|
||||
|
||||
@MAKE_DLL_RULES@
|
||||
|
||||
@DEPENDENCIES@ # everything below this line is overwritten by make depend
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
|
||||
|
@ -31,6 +30,7 @@
|
|||
#include "objbase.h"
|
||||
#include "initguid.h"
|
||||
#include "sti.h"
|
||||
#include "wia_lh.h"
|
||||
|
||||
#include "wine/debug.h"
|
||||
#include "wine/unicode.h"
|
||||
|
@ -395,8 +395,11 @@ static struct regsvr_interface const interface_list[] = {
|
|||
{ NULL } /* list terminator */
|
||||
};
|
||||
|
||||
extern HRESULT WINAPI STI_DllRegisterServer(void) DECLSPEC_HIDDEN;
|
||||
extern HRESULT WINAPI STI_DllUnregisterServer(void) DECLSPEC_HIDDEN;
|
||||
|
||||
/***********************************************************************
|
||||
* DllRegisterServer (INETCOMM.@)
|
||||
* DllRegisterServer (STI.@)
|
||||
*/
|
||||
HRESULT WINAPI DllRegisterServer(void)
|
||||
{
|
||||
|
@ -404,6 +407,8 @@ HRESULT WINAPI DllRegisterServer(void)
|
|||
|
||||
TRACE("\n");
|
||||
|
||||
hr = STI_DllRegisterServer();
|
||||
if (SUCCEEDED(hr))
|
||||
hr = register_coclasses(coclass_list);
|
||||
if (SUCCEEDED(hr))
|
||||
hr = register_interfaces(interface_list);
|
||||
|
@ -411,7 +416,7 @@ HRESULT WINAPI DllRegisterServer(void)
|
|||
}
|
||||
|
||||
/***********************************************************************
|
||||
* DllUnregisterServer (INETCOMM.@)
|
||||
* DllUnregisterServer (STI.@)
|
||||
*/
|
||||
HRESULT WINAPI DllUnregisterServer(void)
|
||||
{
|
||||
|
@ -422,5 +427,7 @@ HRESULT WINAPI DllUnregisterServer(void)
|
|||
hr = unregister_coclasses(coclass_list);
|
||||
if (SUCCEEDED(hr))
|
||||
hr = unregister_interfaces(interface_list);
|
||||
if (SUCCEEDED(hr))
|
||||
hr = STI_DllUnregisterServer();
|
||||
return hr;
|
||||
}
|
||||
|
|
|
@ -32,6 +32,9 @@
|
|||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(sti);
|
||||
|
||||
extern HRESULT WINAPI STI_DllGetClassObject(REFCLSID, REFIID, LPVOID *) DECLSPEC_HIDDEN;
|
||||
extern BOOL WINAPI STI_DllMain(HINSTANCE, DWORD, LPVOID) DECLSPEC_HIDDEN;
|
||||
|
||||
typedef HRESULT (*fnCreateInstance)(REFIID riid, IUnknown *pUnkOuter, LPVOID *ppObj);
|
||||
|
||||
typedef struct
|
||||
|
@ -130,16 +133,9 @@ BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpvReserved)
|
|||
{
|
||||
TRACE("(0x%p, %d, %p)\n",hInstDLL,fdwReason,lpvReserved);
|
||||
|
||||
switch(fdwReason) {
|
||||
case DLL_WINE_PREATTACH:
|
||||
if (fdwReason == DLL_WINE_PREATTACH)
|
||||
return FALSE;
|
||||
case DLL_PROCESS_ATTACH:
|
||||
DisableThreadLibraryCalls(hInstDLL);
|
||||
break;
|
||||
case DLL_PROCESS_DETACH:
|
||||
break;
|
||||
}
|
||||
return TRUE;
|
||||
return STI_DllMain(hInstDLL, fdwReason, lpvReserved);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
|
@ -156,8 +152,9 @@ HRESULT WINAPI DllGetClassObject( REFCLSID rclsid, REFIID iid, LPVOID *ppv )
|
|||
cf = (IClassFactory *)&the_sti_cf.vtbl;
|
||||
}
|
||||
|
||||
if (!cf) return CLASS_E_CLASSNOTAVAILABLE;
|
||||
if (cf)
|
||||
return IClassFactory_QueryInterface( cf, iid, ppv );
|
||||
return STI_DllGetClassObject( rclsid, iid, ppv );
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
/*
|
||||
* Copyright 2009 Damjan Jovanovic
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library 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
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "wia_lh.idl"
|
Loading…
Reference in New Issue