Alexandre Julliard : atl: Implemented AtlCreateTargetDC.

Alexandre Julliard julliard at winehq.org
Mon Jun 14 13:01:15 CDT 2010


Module: wine
Branch: master
Commit: 40ac96d762f3315d050e66083aec3e59fa41d651
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=40ac96d762f3315d050e66083aec3e59fa41d651

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Mon Jun 14 14:13:52 2010 +0200

atl: Implemented AtlCreateTargetDC.

---

 dlls/atl/atl.spec   |    2 +-
 dlls/atl/atl_main.c |   26 ++++++++++++++++++++++++++
 2 files changed, 27 insertions(+), 1 deletions(-)

diff --git a/dlls/atl/atl.spec b/dlls/atl/atl.spec
index 73d6ae6..1a0966d 100644
--- a/dlls/atl/atl.spec
+++ b/dlls/atl/atl.spec
@@ -18,7 +18,7 @@
 23 stdcall AtlModuleUpdateRegistryFromResourceD(ptr wstr long ptr ptr)
 24 stub AtlWaitWithMessageLoop
 25 stub AtlSetErrorInfo
-26 stub AtlCreateTargetDC
+26 stdcall AtlCreateTargetDC(long ptr)
 27 stdcall AtlHiMetricToPixel(ptr ptr)
 28 stdcall AtlPixelToHiMetric(ptr ptr)
 29 stub AtlDevModeW2A
diff --git a/dlls/atl/atl_main.c b/dlls/atl/atl_main.c
index f168d54..fedfc1a 100644
--- a/dlls/atl/atl_main.c
+++ b/dlls/atl/atl_main.c
@@ -545,6 +545,32 @@ void WINAPI AtlPixelToHiMetric(const SIZEL* lpPix, SIZEL* lpHiMetric)
 }
 
 /***********************************************************************
+ *           AtlCreateTargetDC         [ATL.@]
+ */
+HDC WINAPI AtlCreateTargetDC( HDC hdc, DVTARGETDEVICE *dv )
+{
+    static const WCHAR displayW[] = {'d','i','s','p','l','a','y',0};
+    const WCHAR *driver = NULL, *device = NULL, *port = NULL;
+    DEVMODEW *devmode = NULL;
+
+    TRACE( "(%p, %p)\n", hdc, dv );
+
+    if (dv)
+    {
+        if (dv->tdDriverNameOffset) driver  = (WCHAR *)((char *)dv + dv->tdDriverNameOffset);
+        if (dv->tdDeviceNameOffset) device  = (WCHAR *)((char *)dv + dv->tdDeviceNameOffset);
+        if (dv->tdPortNameOffset)   port    = (WCHAR *)((char *)dv + dv->tdPortNameOffset);
+        if (dv->tdExtDevmodeOffset) devmode = (DEVMODEW *)((char *)dv + dv->tdExtDevmodeOffset);
+    }
+    else
+    {
+        if (hdc) return hdc;
+        driver = displayW;
+    }
+    return CreateDCW( driver, device, port, devmode );
+}
+
+/***********************************************************************
  *           AtlModuleAddCreateWndData          [ATL.@]
  */
 void WINAPI AtlModuleAddCreateWndData(_ATL_MODULEW *pM, _AtlCreateWndData *pData, void* pvObject)




More information about the wine-cvs mailing list