diff --git a/reactos/baseaddress.rbuild b/reactos/baseaddress.rbuild index d451dada81c..b222f543395 100644 --- a/reactos/baseaddress.rbuild +++ b/reactos/baseaddress.rbuild @@ -92,6 +92,7 @@ + diff --git a/reactos/boot/bootdata/packages/reactos.dff b/reactos/boot/bootdata/packages/reactos.dff index f1a7635b250..beee80ad264 100644 --- a/reactos/boot/bootdata/packages/reactos.dff +++ b/reactos/boot/bootdata/packages/reactos.dff @@ -237,6 +237,7 @@ dll\win32\cryptdll\cryptdll.dll 1 dll\win32\cryptnet\cryptnet.dll 1 dll\win32\cryptui\cryptui.dll 1 dll\win32\dbghelp\dbghelp.dll 1 +dll\win32\dciman32\dciman32.dll 1 dll\win32\devmgr\devmgr.dll 1 dll\win32\dhcpcsvc\dhcpcsvc.dll 1 dll\win32\dnsapi\dnsapi.dll 1 diff --git a/reactos/dll/win32/dciman32/dciman32.rbuild b/reactos/dll/win32/dciman32/dciman32.rbuild new file mode 100644 index 00000000000..35367a62417 --- /dev/null +++ b/reactos/dll/win32/dciman32/dciman32.rbuild @@ -0,0 +1,17 @@ + + + + + + . + include/reactos/wine + + 0x600 + 0x600 + dciman_main.c + dciman32.spec + wine + kernel32 + ntdll + + diff --git a/reactos/dll/win32/dciman32/dciman32.spec b/reactos/dll/win32/dciman32/dciman32.spec new file mode 100644 index 00000000000..ee235d00a30 --- /dev/null +++ b/reactos/dll/win32/dciman32/dciman32.spec @@ -0,0 +1,21 @@ +@ stub DCIBeginAccess +@ stdcall DCICloseProvider(long) +@ stub DCICreateOffscreen +@ stub DCICreateOverlay +@ stdcall DCICreatePrimary(long ptr) +@ stub DCIDestroy +@ stub DCIDraw +@ stub DCIEndAccess +@ stub DCIEnum +@ stdcall DCIOpenProvider() +@ stub DCISetClipList +@ stub DCISetDestination +@ stub DCISetSrcDestClip +@ stdcall -private DllEntryPoint(long long ptr) DllMain +@ stub GetDCRegionData +@ stub GetWindowRegionData +@ stub WinWatchClose +@ stub WinWatchDidStatusChange +@ stub WinWatchGetClipList +@ stub WinWatchNotify +@ stub WinWatchOpen diff --git a/reactos/dll/win32/dciman32/dciman_main.c b/reactos/dll/win32/dciman32/dciman_main.c new file mode 100644 index 00000000000..2287c7884c9 --- /dev/null +++ b/reactos/dll/win32/dciman32/dciman_main.c @@ -0,0 +1,72 @@ +/* + * Implementation of DCIMAN32 - DCI Manager + * "Device Context Interface" ? + * + * Copyright 2000 Marcus Meissner + * + * 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 +#include + +#include "windef.h" +#include "winbase.h" +#include "winerror.h" +#include "dciman.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(dciman); + +/*********************************************************************** + * DllEntryPoint (DCIMAN32.@) + * + * DCIMAN32 initialisation routine. + */ +BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved ) +{ + if (reason == DLL_PROCESS_ATTACH) DisableThreadLibraryCalls( inst ); + return TRUE; +} + + +/*********************************************************************** + * DCIOpenProvider (DCIMAN32.@) + */ +HDC WINAPI +DCIOpenProvider(void) { + SetLastError(ERROR_CALL_NOT_IMPLEMENTED); + return NULL; +} + +/*********************************************************************** + * DCICloseProvider (DCIMAN32.@) + */ +void WINAPI +DCICloseProvider(HDC hdc) { + SetLastError(ERROR_CALL_NOT_IMPLEMENTED); + return; +} + +/************************************************************************** + * DCICreatePrimary (DCIMAN32.@) + */ +int WINAPI +DCICreatePrimary(HDC hdc, LPDCISURFACEINFO *pDciSurfaceInfo) +{ + SetLastError(ERROR_CALL_NOT_IMPLEMENTED); + FIXME("%p %p\n", hdc, pDciSurfaceInfo); + return DCI_FAIL_UNSUPPORTED; +} diff --git a/reactos/dll/win32/win32.rbuild b/reactos/dll/win32/win32.rbuild index 63427b3b3c7..4bed6209552 100644 --- a/reactos/dll/win32/win32.rbuild +++ b/reactos/dll/win32/win32.rbuild @@ -70,6 +70,9 @@ + + + diff --git a/reactos/include/psdk/dciddi.h b/reactos/include/psdk/dciddi.h new file mode 100644 index 00000000000..5175bf80d50 --- /dev/null +++ b/reactos/include/psdk/dciddi.h @@ -0,0 +1,83 @@ +/* + * DCI driver interface + * + * Copyright (C) 2001 Ove Kaaven + * + * 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 + */ + +#ifndef __WINE_DCIDDI_H +#define __WINE_DCIDDI_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* DCI Command Escape */ +#define DCICOMMAND 3075 +#define DCI_VERSION 0x0100 + +#define DCICREATEPRIMARYSURFACE 1 +#define DCICREATEOFFSCREENSURFACE 2 +#define DCICREATEOVERLAYSURFACE 3 +#define DCIENUMSURFACE 4 +#define DCIESCAPE 5 + +/* DCI Errors */ +#define DCI_OK 0 +#define DCI_FAIL_GENERIC -1 +#define DCI_FAIL_UNSUPPORTEDVERSION -2 +#define DCI_FAIL_INVALIDSURFACE -3 +#define DCI_FAIL_UNSUPPORTED -4 + + +typedef int DCIRVAL; /* DCI callback return type */ + +/***************************************************************************** + * Escape command structures + */ +typedef struct _DCICMD { + DWORD dwCommand; + DWORD dwParam1; + DWORD dwParam2; + DWORD dwVersion; + DWORD dwReserved; +} DCICMD,*LPDCICMD; + +typedef struct _DCISURFACEINFO { + DWORD dwSize; + DWORD dwDCICaps; + DWORD dwCompression; + DWORD dwMask[3]; + DWORD dwWidth; + DWORD dwHeight; + LONG lStride; + DWORD dwBitCount; + ULONG_PTR dwOffSurface; + WORD wSelSurface; + WORD wReserved; + DWORD dwReserved1; + DWORD dwReserved2; + DWORD dwReserved3; + DCIRVAL (CALLBACK *BeginAccess)(LPVOID, LPRECT); + void (CALLBACK *EndAccess)(LPVOID); + void (CALLBACK *DestroySurface)(LPVOID); +} DCISURFACEINFO, *LPDCISURFACEINFO; + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* __WINE_DCIDDI_H */ diff --git a/reactos/include/psdk/dciman.h b/reactos/include/psdk/dciman.h new file mode 100644 index 00000000000..487388fe7f9 --- /dev/null +++ b/reactos/include/psdk/dciman.h @@ -0,0 +1,38 @@ +/* + * DCI driver interface + * + * Copyright (C) 2005 Francois Gouget + * + * 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 + */ + +#ifndef _INC_DCIMAN +#define _INC_DCIMAN + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +HDC WINAPI DCIOpenProvider(void); +void WINAPI DCICloseProvider(HDC); +int WINAPI DCICreatePrimary(HDC,LPDCISURFACEINFO*); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* _INC_DCIMAN */ diff --git a/reactos/media/doc/README.WINE b/reactos/media/doc/README.WINE index ba201c95c1b..0a73a7aae2d 100644 --- a/reactos/media/doc/README.WINE +++ b/reactos/media/doc/README.WINE @@ -44,6 +44,7 @@ reactos/dll/win32/crypt32 # Out of sync reactos/dll/win32/cryptdll # Autosync reactos/dll/win32/cryptnet # Autosync reactos/dll/win32/dbghelp # Synced to Wine-20080106 +reactos/dll/win32/dciman32 # Synced to Wine-1_0-rc2 reactos/dll/win32/gdiplus # Autosync reactos/dll/win32/hhctrl.ocx # Autosync reactos/dll/win32/hlink # Autosync