- Add mscat32, ntprint and wmi from Wine

svn path=/trunk/; revision=39006
This commit is contained in:
Dmitry Chapyshev 2009-01-22 09:29:16 +00:00
parent fc53f8c890
commit 9cd35f3d5c
14 changed files with 428 additions and 0 deletions

View file

@ -30,6 +30,7 @@
<property name="BASEADDRESS_INPUT" value ="0x5e400000" />
<property name="BASEADDRESS_DINPUT" value="0x5f580000" />
<property name="BASEADDRESS_NETID" value="0x5f660000" />
<property name="BASEADDRESS_NTPRINT" value="0x5f6a0000" />
<property name="BASEADDRESS_QEDIT" value="0x611c0000" />
<property name="BASEADDRESS_MODEMUI" value="0x61650000" />
<property name="BASEADDRESS_MAPI32" value="0x62250000" />
@ -103,6 +104,7 @@
<property name="BASEADDRESS_DEVMGR" value="0x72a90000" />
<property name="BASEADDRESS_WDMAUD" value="0x72d20000" />
<property name="BASEADDRESS_WINSPOOL" value="0x72f50000" />
<property name="BASEADDRESS_MSCAT32" value="0x732b0000" />
<property name="BASEADDRESS_MSTASK" value="0x73520000" />
<property name="BASEADDRESS_MSDMO" value="0x73670000" />
<property name="BASEADDRESS_AVIFIL32" value="0x73ac0000" />
@ -164,6 +166,7 @@
<property name="BASEADDRESS_WINTRUST" value="0x76c30000" />
<property name="BASEADDRESS_IMAGEHLP" value="0x76c90000" />
<property name="BASEADDRESS_CLUSAPI" value="0x76d10000" />
<property name="BASEADDRESS_WMI" value="0x76d20000" />
<property name="BASEADDRESS_DHCPCSVC" value="0x76d80000" />
<property name="BASEADDRESS_FMIFS" value="0x76df0000" />
<property name="BASEADDRESS_OLEAUT32" value="0x76e00000" />

View file

@ -285,6 +285,7 @@ dll\win32\mpr\mpr.dll 1
dll\win32\mprapi\mprapi.dll 1
dll\win32\msacm32\msacm32.dll 1
dll\win32\msafd\msafd.dll 1
dll\win32\mscat32\mscat32.dll 1
dll\win32\mscoree\mscoree.dll 1
dll\win32\msgina\msgina.dll 1
dll\win32\mshtml\mshtml.dll 1
@ -307,6 +308,7 @@ dll\win32\netshell\netshell.dll 1
dll\win32\newdev\newdev.dll 1
dll\win32\ntdsapi\ntdsapi.dll 1
dll\win32\ntmarta\ntmarta.dll 1
dll\win32\ntprint\ntprint.dll 1
dll\win32\objsel\objsel.dll 1
dll\win32\odbc32\odbc32.dll 1
dll\win32\odbccp32\odbccp32.dll 1
@ -373,6 +375,7 @@ dll\win32\winspool\winspool.drv 1
dll\win32\winsta\winsta.dll 1
dll\win32\wintrust\wintrust.dll 1
dll\win32\wldap32\wldap32.dll 1
dll\win32\wmi\wmi.dll 1
dll\win32\ws2_32\ws2_32.dll 1
dll\win32\ws2help\ws2help.dll 1
dll\win32\wshirda\wshirda.dll 1

View file

@ -0,0 +1,47 @@
/* mscat32.dll - Backend for Microsoft's MakeCat command-line tool
*
* Copyright (C) 2007 Alexander N. Sørnes <alex@thehandofagony.com>
*
* This program 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 program 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 program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include "config.h"
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(mscat);
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
TRACE("(%p, %d, %p)\n",hinstDLL,fdwReason,lpvReserved);
if (fdwReason == DLL_WINE_PREATTACH) return FALSE; /* prefer native version */
if (fdwReason == DLL_PROCESS_ATTACH)
{
DisableThreadLibraryCalls( hinstDLL );
/* FIXME: Initialisation */
}
else if (fdwReason == DLL_PROCESS_DETACH)
{
/* FIXME: Cleanup */
}
return TRUE;
}

View file

@ -0,0 +1,14 @@
<group>
<module name="mscat32" type="win32dll" baseaddress="${BASEADDRESS_MSCAT32}" installbase="system32" installname="mscat32.dll" allowwarnings="true">
<autoregister infsection="OleControlDlls" type="DllRegisterServer" />
<importlibrary definition="mscat32.spec" />
<include base="mscat32">.</include>
<include base="ReactOS">include/reactos/wine</include>
<define name="__WINESRC__" />
<file>main.c</file>
<library>wine</library>
<library>wintrust</library>
<library>kernel32</library>
<library>ntdll</library>
</module>
</group>

View file

@ -0,0 +1,34 @@
@ stub CryptCATVerifyMember
@ stdcall CryptCATAdminAcquireContext(long ptr long) wintrust.CryptCATAdminAcquireContext
@ stdcall CryptCATAdminAddCatalog(long wstr wstr long) wintrust.CryptCATAdminAddCatalog
@ stdcall CryptCATAdminCalcHashFromFileHandle(long ptr ptr long) wintrust.CryptCATAdminCalcHashFromFileHandle
@ stdcall CryptCATAdminEnumCatalogFromHash(long ptr long long ptr) wintrust.CryptCATAdminEnumCatalogFromHash
@ stdcall CryptCATAdminReleaseCatalogContext(long long long) wintrust.CryptCATAdminReleaseCatalogContext
@ stdcall CryptCATAdminReleaseContext(long long) wintrust.CryptCATAdminReleaseContext
@ stub CryptCATCDFClose
@ stub CryptCATCDFEnumAttributes
@ stub CryptCATCDFEnumAttributesWithCDFTag
@ stub CryptCATCDFEnumCatAttributes
@ stub CryptCATCDFEnumMembers
@ stub CryptCATCDFEnumMembersByCDFTag
@ stub CryptCATCDFOpen
@ stub CryptCATCatalogInfoFromContext
@ stdcall CryptCATClose(long) wintrust.CryptCATClose
@ stub CryptCATEnumerateAttr
@ stub CryptCATEnumerateCatAttr
@ stdcall CryptCATEnumerateMember(long ptr) wintrust.CryptCATEnumerateMember
@ stub CryptCATGetAttrInfo
@ stub CryptCATGetCatAttrInfo
@ stub CryptCATGetMemberInfo
@ stub CryptCATHandleFromStore
@ stdcall CryptCATOpen(wstr long long long long) wintrust.CryptCATOpen
@ stub CryptCATPersistStore
@ stub CryptCATPutAttrInfo
@ stub CryptCATPutCatAttrInfo
@ stub CryptCATPutMemberInfo
@ stub CryptCATStoreFromHandle
@ stdcall -private DllRegisterServer() wintrust.mscat32DllRegisterServer
@ stdcall -private DllUnregisterServer() wintrust.mscat32DllUnregisterServer
@ stub IsCatalogFile
@ stub MsCatConstructHashTag
@ stub MsCatFreeHashTag

View file

@ -0,0 +1,167 @@
/*
* Implementation of the Spooler Setup API (Printing)
*
* Copyright 2007 Detlef Riekenberg
*
* 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 <stdarg.h>
#define COBJMACROS
#define NONAMELESSUNION
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
#include "wingdi.h"
#include "winnls.h"
#include "winver.h"
#include "winspool.h"
#include "wine/unicode.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(ntprint);
HINSTANCE NTPRINT_hInstance = NULL;
typedef struct {
LPMONITOR_INFO_2W mi2; /* Buffer for installed Monitors */
DWORD installed; /* Number of installed Monitors */
} monitorinfo_t;
/*****************************************************
* DllMain
*/
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
TRACE("(%p, %d, %p)\n",hinstDLL, fdwReason, lpvReserved);
switch(fdwReason)
{
case DLL_WINE_PREATTACH:
return FALSE; /* prefer native version */
case DLL_PROCESS_ATTACH:
NTPRINT_hInstance = hinstDLL;
DisableThreadLibraryCalls( hinstDLL );
break;
}
return TRUE;
}
/*****************************************************
* PSetupCreateMonitorInfo [NTPRINT.@]
*
*
*/
HANDLE WINAPI PSetupCreateMonitorInfo(LPVOID unknown1, LPVOID unknown2,LPVOID unknown3)
{
monitorinfo_t * mi=NULL;
DWORD needed;
DWORD res;
TRACE("(%p, %p, %p)\n", unknown1, unknown2, unknown3);
if ((unknown2 != NULL) || (unknown3 != NULL)) {
FIXME("got unknown parameter: (%p, %p, %p)\n", unknown1, unknown2, unknown3);
return NULL;
}
mi = HeapAlloc(GetProcessHeap(), 0, sizeof(monitorinfo_t));
if (!mi) {
/* FIXME: SetLastError() needed? */
return NULL;
}
/* Get the needed size for all Monitors */
res = EnumMonitorsW(NULL, 2, NULL, 0, &needed, &mi->installed);
if (!res && (GetLastError() == ERROR_INSUFFICIENT_BUFFER)) {
mi->mi2 = HeapAlloc(GetProcessHeap(), 0, needed);
res = EnumMonitorsW(NULL, 2, (LPBYTE) mi->mi2, needed, &needed, &mi->installed);
}
if (!res) {
HeapFree(GetProcessHeap(), 0, mi);
/* FIXME: SetLastError() needed? */
return NULL;
}
TRACE("=> %p (%u monitors installed)\n", mi, mi->installed);
return (HANDLE) mi;
}
/*****************************************************
* PSetupDestroyMonitorInfo [NTPRINT.@]
*
*/
VOID WINAPI PSetupDestroyMonitorInfo(HANDLE monitorinfo)
{
monitorinfo_t * mi = (monitorinfo_t *) monitorinfo;
TRACE("(%p)\n", mi);
if (mi) {
if (mi->installed) HeapFree(GetProcessHeap(), 0, mi->mi2);
HeapFree(GetProcessHeap(), 0, mi);
}
}
/*****************************************************
* PSetupEnumMonitor [NTPRINT.@]
*
* Copy the selected Monitorname to a buffer
*
* PARAMS
* monitorinfo [I] HANDLE from PSetupCreateMonitorInfo
* index [I] Nr. of the Monitorname to copy
* buffer [I] Target, that receive the Monitorname
* psize [IO] PTR to a DWORD that hold the size of the buffer and receive
* the needed size, when the buffer is too small
*
* RETURNS
* Success: TRUE
* Failure: FALSE
*
* NOTES
* size is in Bytes on w2k and WCHAR on XP
*
*/
BOOL WINAPI PSetupEnumMonitor(HANDLE monitorinfo, DWORD index, LPWSTR buffer, LPDWORD psize)
{
monitorinfo_t * mi = (monitorinfo_t *) monitorinfo;
LPWSTR nameW;
DWORD len;
TRACE("(%p, %u, %p, %p) => %d\n", mi, index, buffer, psize, psize ? *psize : 0);
if (index < mi->installed) {
nameW = mi->mi2[index].pName;
len = lstrlenW(nameW) + 1;
if (len <= *psize) {
memcpy(buffer, nameW, len * sizeof(WCHAR));
TRACE("#%u: %s\n", index, debugstr_w(buffer));
return TRUE;
}
*psize = len;
SetLastError(ERROR_INSUFFICIENT_BUFFER);
return FALSE;
}
SetLastError(ERROR_NO_MORE_ITEMS);
return FALSE;
}

View file

@ -0,0 +1,14 @@
<group>
<module name="ntprint" type="win32dll" baseaddress="${BASEADDRESS_NTPRINT}" installbase="system32" installname="ntprint.dll" allowwarnings="true">
<importlibrary definition="ntprint.spec" />
<include base="ntprint">.</include>
<include base="ReactOS">include/reactos/wine</include>
<define name="__WINESRC__" />
<file>ntprint.c</file>
<file>ntprint.rc</file>
<library>wine</library>
<library>winspool</library>
<library>kernel32</library>
<library>ntdll</library>
</module>
</group>

View file

@ -0,0 +1,37 @@
/*
* Top level resource file for ntprint.dll
*
* Copyright 2007 Detlef Riekenberg
*
* 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 "windef.h"
#include "winbase.h"
#include "winuser.h"
#include "winver.h"
#define WINE_FILENAME_STR "ntprint.dll"
#define WINE_FILEDESCRIPTION_STR "Spooler Setup API (Printing)"
/* Same Version as WinXP_sp2 */
#define WINE_FILEVERSION 5,1,2600,2180
#define WINE_FILEVERSION_STR "5.1.2600.2180"
#define WINE_PRODUCTVERSION 5,1,2600,2180
#define WINE_PRODUCTVERSION_STR "5.1.2600.2180"
#include "wine/wine_common_ver.rc"

View file

@ -0,0 +1,35 @@
@ stub ClassInstall32
@ stub PSetupAssociateICMProfiles
@ stub PSetupBuildDriversFromPath
@ stub PSetupCreateDrvSetupPage
@ stdcall PSetupCreateMonitorInfo(long ptr ptr)
@ stub PSetupCreatePrinterDeviceInfoList
@ stub PSetupDestroyDriverInfo3
@ stdcall PSetupDestroyMonitorInfo(long)
@ stub PSetupDestroyPrinterDeviceInfoList
@ stub PSetupDestroySelectedDriverInfo
@ stub PSetupDriverInfoFromName
@ stdcall PSetupEnumMonitor(long long ptr ptr)
@ stub PSetupFreeDrvField
@ stub PSetupGetDriverInfForPrinter
@ stub PSetupGetDriverInfo3
@ stub PSetupGetLocalDataField
@ stub PSetupGetPathToSearch
@ stub PSetupGetSelectedDriverInfo
@ stub PSetupInstallICMProfiles
@ stub PSetupInstallMonitor
@ stub PSetupInstallPrinterDriver
@ stub PSetupInstallPrinterDriverFromTheWeb
@ stub PSetupIsCompatibleDriver
@ stub PSetupIsDriverInstalled
@ stub PSetupIsMonitorInstalled
@ stub PSetupIsOemDriver
@ stub PSetupIsTheDriverFoundInInfInstalled
@ stub PSetupKillBadUserConnections
@ stub PSetupPreSelectDriver
@ stub PSetupProcessPrinterAdded
@ stub PSetupRefreshDriverList
@ stub PSetupSelectDeviceButtons
@ stub PSetupSelectDriver
@ stub PSetupSetSelectDevTitleAndInstructions
@ stub PSetupThisPlatform

View file

@ -178,6 +178,9 @@
<directory name="msafd">
<xi:include href="msafd/msafd.rbuild" />
</directory>
<directory name="mscat32">
<xi:include href="mscat32/mscat32.rbuild" />
</directory>
<directory name="mscoree">
<xi:include href="mscoree/mscoree.rbuild" />
</directory>
@ -244,6 +247,9 @@
<directory name="ntmarta">
<xi:include href="ntmarta/ntmarta.rbuild" />
</directory>
<directory name="ntprint">
<xi:include href="ntprint/ntprint.rbuild" />
</directory>
<directory name="objsel">
<xi:include href="objsel/objsel.rbuild" />
</directory>
@ -445,6 +451,9 @@
<directory name="wldap32">
<xi:include href="wldap32/wldap32.rbuild" />
</directory>
<directory name="wmi">
<xi:include href="wmi/wmi.rbuild" />
</directory>
<directory name="ws2_32">
<xi:include href="ws2_32/ws2_32.rbuild" />
</directory>

View file

@ -0,0 +1,10 @@
<group>
<module name="wmi" type="win32dll" baseaddress="${BASEADDRESS_WMI}" installbase="system32" installname="wmi.dll" entrypoint="0">
<importlibrary definition="wmi.spec" />
<include base="wmi">.</include>
<library>advapi32</library>
<library>kernel32</library>
<library>ntdll</library>
<file>wmi.rc</file>
</module>
</group>

View file

@ -0,0 +1,7 @@
#include <windows.h>
#define REACTOS_VERSION_DLL
#define REACTOS_STR_FILE_DESCRIPTION "WMI DC and DP functionality\0"
#define REACTOS_STR_INTERNAL_NAME "wmi\0"
#define REACTOS_STR_ORIGINAL_FILENAME "wmi.dll\0"
#include <reactos/version.rc>

View file

@ -0,0 +1,45 @@
@ stdcall CloseTrace(long) advapi32.CloseTrace
@ stdcall ControlTraceA(long long ptr long) advapi32.ControlTraceA
@ stdcall ControlTraceW(long long ptr long) advapi32.ControlTraceW
@ stdcall CreateTraceInstanceId(long ptr) advapi32.CreateTraceInstanceId
@ stdcall EnableTrace(long long long ptr long) advapi32.EnableTrace
@ stdcall GetTraceEnableFlags(long) advapi32.GetTraceEnableFlags
@ stdcall GetTraceEnableLevel(long) advapi32.GetTraceEnableLevel
@ stdcall GetTraceLoggerHandle(ptr) advapi32.GetTraceLoggerHandle
@ stdcall OpenTraceA(ptr) advapi32.OpenTraceA
@ stdcall OpenTraceW(ptr) advapi32.OpenTraceW
@ stdcall ProcessTrace(ptr long ptr ptr) advapi32.ProcessTrace
@ stdcall QueryAllTracesA(ptr long ptr) advapi32.QueryAllTracesA
@ stdcall QueryAllTracesW(ptr long ptr) advapi32.QueryAllTracesW
@ stdcall RegisterTraceGuidsA(ptr ptr ptr long ptr ptr ptr ptr) advapi32.RegisterTraceGuidsA
@ stdcall RegisterTraceGuidsW(ptr ptr ptr long ptr ptr ptr ptr) advapi32.RegisterTraceGuidsW
@ stdcall RemoveTraceCallback(ptr) advapi32.RemoveTraceCallback
@ stdcall SetTraceCallback(ptr ptr) advapi32.SetTraceCallback
@ stdcall StartTraceA(ptr ptr ptr) advapi32.StartTraceA
@ stdcall StartTraceW(ptr ptr ptr) advapi32.StartTraceW
@ stdcall TraceEvent(long ptr) advapi32.TraceEvent
@ stdcall TraceEventInstance(long ptr ptr ptr) advapi32.TraceEventInstance
@ stdcall UnregisterTraceGuids(long) advapi32.UnregisterTraceGuids
@ stdcall WmiCloseBlock() advapi32.WmiCloseBlock
@ stdcall WmiDevInstToInstanceNameA() advapi32.WmiDevInstToInstanceNameA
@ stdcall WmiDevInstToInstanceNameW() advapi32.WmiDevInstToInstanceNameW
@ stdcall WmiEnumerateGuids() advapi32.WmiEnumerateGuids
@ stdcall WmiExecuteMethodA() advapi32.WmiExecuteMethodA
@ stdcall WmiExecuteMethodW() advapi32.WmiExecuteMethodW
@ stdcall WmiFileHandleToInstanceNameA() advapi32.WmiFileHandleToInstanceNameA
@ stdcall WmiFileHandleToInstanceNameW() advapi32.WmiFileHandleToInstanceNameW
@ stdcall WmiFreeBuffer() advapi32.WmiFreeBuffer
@ stdcall WmiMofEnumerateResourcesA() advapi32.WmiMofEnumerateResourcesA
@ stdcall WmiMofEnumerateResourcesW() advapi32.WmiMofEnumerateResourcesW
@ stdcall WmiNotificationRegistrationA() advapi32.WmiNotificationRegistrationA
@ stdcall WmiNotificationRegistrationW() advapi32.WmiNotificationRegistrationW
@ stdcall WmiOpenBlock() advapi32.WmiOpenBlock
@ stdcall WmiQueryAllDataA() advapi32.WmiQueryAllDataA
@ stdcall WmiQueryAllDataW() advapi32.WmiQueryAllDataW
@ stdcall WmiQueryGuidInformation() advapi32.WmiQueryGuidInformation
@ stdcall WmiQuerySingleInstanceA() advapi32.WmiQuerySingleInstanceA
@ stdcall WmiQuerySingleInstanceW() advapi32.WmiQuerySingleInstanceW
@ stdcall WmiSetSingleInstanceA() advapi32.WmiSetSingleInstanceA
@ stdcall WmiSetSingleInstanceW() advapi32.WmiSetSingleInstanceW
@ stdcall WmiSetSingleItemA() advapi32.WmiSetSingleItemA
@ stdcall WmiSetSingleItemW() advapi32.WmiSetSingleItemW

View file

@ -64,6 +64,7 @@ reactos/dll/win32/mapi32 # Autosync
reactos/dll/win32/mlang # Autosync
reactos/dll/win32/mpr # Autosync
reactos/dll/win32/msacm32 # Out of sync
reactos/dll/win32/mscat32 # Autosync
reactos/dll/win32/mscoree # Autosync
reactos/dll/win32/mshtml # Autosync
reactos/dll/win32/msimg32 # Autosync
@ -76,6 +77,7 @@ reactos/dll/win32/msxml3 # Synced to Wine-20071230
reactos/dll/win32/nddeapi # Autosync
reactos/dll/win32/netapi32 # Autosync
reactos/dll/win32/ntdsapi # Autosync
reactos/dll/win32/ntprint # Autosync
reactos/dll/win32/objsel # Autosync
reactos/dll/win32/odbc32 # Out of sync. Depends on port of Linux ODBC.
reactos/dll/win32/odbccp32 # Autosync
@ -117,6 +119,7 @@ reactos/dll/win32/winmm # Forked at Wine-20050628
reactos/dll/win32/winmm/midimap # Forked at Wine-20050628
reactos/dll/win32/winmm/wavemap # Forked at Wine-20050628
reactos/dll/win32/wldap32 # Autosync
reactos/dll/win32/wmi # Autosync
reactos/dll/win32/wtsapi32 # Autosync
reactos/dll/directx/dinput # Synced to Wine-0_9_5
reactos/dll/directx/dinput8 # Synced to Wine-0_9_5