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/shdocvw/shdocvw_v1.tlb
|
||||||
dlls/stdole2.tlb/std_ole_v2.tlb
|
dlls/stdole2.tlb/std_ole_v2.tlb
|
||||||
dlls/stdole32.tlb/std_ole_v1.tlb
|
dlls/stdole32.tlb/std_ole_v1.tlb
|
||||||
|
dlls/sti/sti_wia.h
|
||||||
|
dlls/sti/sti_wia_p.c
|
||||||
dlls/user.exe16
|
dlls/user.exe16
|
||||||
dlls/wprocs.dll16
|
dlls/wprocs.dll16
|
||||||
include/activaut.h
|
include/activaut.h
|
||||||
|
|
|
@ -4,13 +4,19 @@ SRCDIR = @srcdir@
|
||||||
VPATH = @srcdir@
|
VPATH = @srcdir@
|
||||||
MODULE = sti.dll
|
MODULE = sti.dll
|
||||||
IMPORTLIB = sti
|
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 = \
|
C_SRCS = \
|
||||||
regsvr.c \
|
regsvr.c \
|
||||||
sti.c \
|
sti.c \
|
||||||
sti_main.c
|
sti_main.c
|
||||||
|
|
||||||
|
IDL_P_SRCS = \
|
||||||
|
sti_wia.idl
|
||||||
|
|
||||||
|
EXTRA_OBJS = dlldata.o
|
||||||
|
|
||||||
@MAKE_DLL_RULES@
|
@MAKE_DLL_RULES@
|
||||||
|
|
||||||
@DEPENDENCIES@ # everything below this line is overwritten by make depend
|
@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
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
@ -31,6 +30,7 @@
|
||||||
#include "objbase.h"
|
#include "objbase.h"
|
||||||
#include "initguid.h"
|
#include "initguid.h"
|
||||||
#include "sti.h"
|
#include "sti.h"
|
||||||
|
#include "wia_lh.h"
|
||||||
|
|
||||||
#include "wine/debug.h"
|
#include "wine/debug.h"
|
||||||
#include "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
|
@ -395,8 +395,11 @@ static struct regsvr_interface const interface_list[] = {
|
||||||
{ NULL } /* list terminator */
|
{ 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)
|
HRESULT WINAPI DllRegisterServer(void)
|
||||||
{
|
{
|
||||||
|
@ -404,6 +407,8 @@ HRESULT WINAPI DllRegisterServer(void)
|
||||||
|
|
||||||
TRACE("\n");
|
TRACE("\n");
|
||||||
|
|
||||||
|
hr = STI_DllRegisterServer();
|
||||||
|
if (SUCCEEDED(hr))
|
||||||
hr = register_coclasses(coclass_list);
|
hr = register_coclasses(coclass_list);
|
||||||
if (SUCCEEDED(hr))
|
if (SUCCEEDED(hr))
|
||||||
hr = register_interfaces(interface_list);
|
hr = register_interfaces(interface_list);
|
||||||
|
@ -411,7 +416,7 @@ HRESULT WINAPI DllRegisterServer(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* DllUnregisterServer (INETCOMM.@)
|
* DllUnregisterServer (STI.@)
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI DllUnregisterServer(void)
|
HRESULT WINAPI DllUnregisterServer(void)
|
||||||
{
|
{
|
||||||
|
@ -422,5 +427,7 @@ HRESULT WINAPI DllUnregisterServer(void)
|
||||||
hr = unregister_coclasses(coclass_list);
|
hr = unregister_coclasses(coclass_list);
|
||||||
if (SUCCEEDED(hr))
|
if (SUCCEEDED(hr))
|
||||||
hr = unregister_interfaces(interface_list);
|
hr = unregister_interfaces(interface_list);
|
||||||
|
if (SUCCEEDED(hr))
|
||||||
|
hr = STI_DllUnregisterServer();
|
||||||
return hr;
|
return hr;
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,6 +32,9 @@
|
||||||
|
|
||||||
WINE_DEFAULT_DEBUG_CHANNEL(sti);
|
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 HRESULT (*fnCreateInstance)(REFIID riid, IUnknown *pUnkOuter, LPVOID *ppObj);
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
|
@ -130,16 +133,9 @@ BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpvReserved)
|
||||||
{
|
{
|
||||||
TRACE("(0x%p, %d, %p)\n",hInstDLL,fdwReason,lpvReserved);
|
TRACE("(0x%p, %d, %p)\n",hInstDLL,fdwReason,lpvReserved);
|
||||||
|
|
||||||
switch(fdwReason) {
|
if (fdwReason == DLL_WINE_PREATTACH)
|
||||||
case DLL_WINE_PREATTACH:
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
case DLL_PROCESS_ATTACH:
|
return STI_DllMain(hInstDLL, fdwReason, lpvReserved);
|
||||||
DisableThreadLibraryCalls(hInstDLL);
|
|
||||||
break;
|
|
||||||
case DLL_PROCESS_DETACH:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
|
@ -156,8 +152,9 @@ HRESULT WINAPI DllGetClassObject( REFCLSID rclsid, REFIID iid, LPVOID *ppv )
|
||||||
cf = (IClassFactory *)&the_sti_cf.vtbl;
|
cf = (IClassFactory *)&the_sti_cf.vtbl;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!cf) return CLASS_E_CLASSNOTAVAILABLE;
|
if (cf)
|
||||||
return IClassFactory_QueryInterface( cf, iid, ppv );
|
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