1 The Wine development release 1.5.17 is now available.
3 What's new in this release (see below for details):
4 - Sub-pixel font anti-aliasing in the DIB engine.
5 - Support for automatic installation of ActiveX controls.
6 - Automatic fallback to TLS 1.0 for secure connections.
7 - Beginnings of the DirectWrite text analyzer.
8 - Better handling of font outlines in OpenGL.
11 The source is available from the following locations:
13 http://prdownloads.sourceforge.net/wine/wine-1.5.17.tar.bz2
14 http://mirrors.ibiblio.org/wine/source/1.5/wine-1.5.17.tar.bz2
16 Binary packages for various distributions will be available from:
18 http://www.winehq.org/download
20 You will find documentation on http://www.winehq.org/documentation
22 You can also get the current source directly from the git
23 repository. Check http://www.winehq.org/git for details.
25 Wine is available thanks to the work of many people. See the file
26 AUTHORS in the distribution for the complete list.
28 ----------------------------------------------------------------
30 Bugs fixed in 1.5.17 (total 53):
32 12651 Bad sound quality in Starcraft when running with hardware acceleration
33 13465 Overlord: adding native d3dx9_36.dll results in a crash
34 15256 Disabling OpenGL output in WinUAE causes crash, possibly in x11drv_main
35 15973 Encoding/escaping issues in some foreign chm files
36 18083 Metatrader: doesn't respect charts sorting/sequency when restarted
37 19100 Age of Wonders Shadow Magic: Game doesn't launch!
38 20755 Minor display problems in Mafia
39 21226 MetaEditor has black rows in the text editor.
40 21694 MotorM4X fails to run
41 22034 EXIT_ON_ERROR should use ERR instead of WARN in winealsa.drv
42 22065 HeadOverHeels crashes
43 22308 Downloadable content is unauthorized and disabled when logged in to Dragon Age: Origins server
44 22350 package Mono so it can be included in a default Wine install
45 22696 RCT2 crashes when changing screen resolution
46 23837 The Spirit Engine 2 crashes on startup when using ALSA hardware driver backend (ALSA hw emu and OSS hw/sw emu work)
47 24453 Snes9x 1.52 runs very slowly with DirectDraw.
48 24557 winmm/msacm: Improper shutdown sequence
49 24639 James Cameron's Avatar: The Game demo - no sound without hardware acceleration = emulation
50 24873 LTSPICE crashes some seconds after running a simulation
51 25060 Microsoft .NET Framework 3.5 installer does not complete
52 25385 The UnderGarden Demo won't run without winetricks d3dx9_36
53 26877 Cannot save games in Sim City 3000 Unlimited
54 27056 WebcamMax: Crash at installation
55 27741 Imbricated for loops parameters not expanded correctly
56 27813 Windows 7 msacm32 needs CompareStringOrdinal
57 28422 scanf family of functions provides only 7 digits of precision for converting doubles and long doubles
58 28477 Pollux Ride : Unhandled exception: unimplemented function msvcp80.dll.??0?$basic_fstream@DU?$char_traits@D@std@@@std@@Q
59 28871 MT5 installs but window doesn't respond
60 29147 Metatrader freezes when an expert advisor is loaded
61 29250 Blurry fonts antialiasing in Word 2007/2010
62 29452 msi installer doesn't show open dialog
63 29513 win2flash crashes on start with segfault
64 30100 LT Spice freezes
65 30206 Doom Builder 2: fails to initialize graphics when opening a map
66 30241 Heroes IV Crash in 16:9 resolution
67 30598 Evernote can't connect to server
68 30762 msxml3/domdoc tests flaky
69 30806 Console2: fails to start
70 30908 SlingPlayer 2 crashes when connecting through a proxy
71 30947 Tropico 4: crashes on startup
72 31473 AirMech installer does not start up
73 31982 Black shadow flash in a moment after right clicking on the main window of Thunder
74 31995 Artweaver Free v3.1 fails to start without native crypt32.dll
75 32039 Ankh hangs on start with built-in msvcp71
76 32052 Microsoft SQL Server 2000 Desktop Engine (MSDE 2000) Release A installer creates incorrect registry entry
77 32066 Right click menu of QQ2012 system tray flushes and disappears
78 32080 Installation of CorelDRAW 12 fails
79 32081 Civilization V fails to start a game without native d3dx9_36 (crashes in d3dx9_36/math.c)
80 32117 Genesis Rising crashes on start
81 32118 Invoke() is broken for IFileSystem
82 32122 msi: crash running tests for MSI products patching
83 32156 .Net 3.0 (dotnet30) installer fails
84 32165 .NET installer does not set file dates
86 ----------------------------------------------------------------
90 Alexandre Julliard (36):
91 user32: Don't flush window surfaces while waiting for a sent message reply.
92 winex11: Delay mapping a layered window until its attributes are set.
93 ntdll: Avoid using Low/HighPart of a large integer when not necessary.
94 ntdll: Add a helper function to set file times.
95 ntdll: Remove futimes implementation from libport, it's only needed in ntdll.
96 gdi32: Avoid some redundant registry calls while loading the font cache.
97 gdi32: Store the font file name in Unicode in the font cache.
98 gdi32: Store the fontconfig anti-aliasing flags for each font.
99 gdi32: Add a parameter to return anti-aliasing flags in the SelectFont driver entry point.
100 gdi32: Store the anti-aliasing flags in the DC when selecting a font.
101 gdi32: Disable anti-aliasing when necessary in the various drivers.
102 gdi32: Move checking of the subpixel support and gasp flags to freetype.c.
103 gdi32: Set the font anti-aliasing flags from the fontconfig information if available.
104 urlmon: Add po file support for resource translation.
105 gdi32: Determine the default anti-aliasing parameters in the null driver SelectFont entry point.
106 winex11: Use the default anti-aliasing parameters from gdi32.
107 winex11: Store the anti-aliasing flags in the device instead of the font cache.
108 include: Add format definitions for wglUseFontOutlines.
109 gdi32: Get rid of the non-standard flags in GetRasterizerCaps.
110 gdi32: Use the fontconfig anti-aliasing setup even for non-fontconfig fonts.
111 gdi32: Avoid opening the desktop registry key multiple times.
112 gdi32: Take into account the FontSmoothing key for anti-aliasing.
113 user32: Force refreshing the non-client area when the window surface is changed.
114 opengl32: Update to the current OpenGL spec.
115 opengl32: Generate our own wgl.h header from the OpenGL registry data.
116 opengl32: Avoid using the system GL headers.
117 gdi32: Avoid using the system GL headers.
118 winex11: Avoid using the system GL headers.
119 wined3d: Make use of the generated wgl.h header.
120 opengl32: Don't substitute OpenGL types that are already defined in wgl.h.
121 ntdll: Fix access/write file time mixup.
122 configure: Check for getopt_long_only instead of getopt_long.
123 configure: Remove checks for OpenGL headers that are no longer used.
124 wined3d: Link directly to opengl32.
125 opengl32: Get rid of the extension removal hack in wglGetProcAddress and clean up the tracing.
126 opengl32: Get rid of wine_ prefix on generated functions.
128 Alistair Leslie-Hughes (1):
129 iads.idl: Add missing interfaces.
132 oleaut32: helpcontext is not an offset.
134 André Hentschel (33):
135 dplayx/tests: Add missing GetPlayerName test.
136 fusion: Reorder some code to avoid memory leak (coverity).
137 gdi32: Avoid memory leaks (coverity).
138 ieframe: Avoid memory leak (coverity).
139 oleaut32: Don't leak SafeArray (coverity).
140 ole32: Don't leak memory allocated by enumx_allocate (coverity).
141 rpcrt4: Reorder code to make sure RpcBindingFromStringBinding[AW] cleans up (coverity).
142 shell32: Reorder code to avoid memory leaks (coverity).
143 urlmon: Avoid memory leaks (coverity).
144 msxml3: Avoid memory leak (coverity).
145 ole32: Don't leak memory allocated by FileMonikerImpl_DecomposePath (coverity).
146 oleaut32: Don't leak memory allocated by heap_alloc_zero (coverity).
147 setupapi: Avoid memory leaks (coverity).
148 ole32: Don't leak memory allocated by ProgIDFromCLSID (coverity).
149 dplayx: Reorder some code to avoid memory leak (coverity).
150 comdlg32: Fix usage of constants.
151 user32: Avoid memory leaks (coverity).
152 usp10: Avoid memory leak in ScriptTextOut (coverity).
153 wineps: Avoid memory leaks (coverity).
154 winex11: Avoid memory leaks (coverity).
155 wininet: Fix WININET_SetAuthorization on error path (coverity).
156 vbscript: Avoid memory leak in compile_select_statement (coverity).
157 winspool: Avoid memory leaks (coverity).
158 winex11: Avoid memory leaks (coverity).
159 riched20: Remove duplicate operand in expression (coverity).
160 urlmon: Fix copy and paste error (coverity).
161 d3dx9_36: Return on error (coverity).
162 dmloader: Fix sizeof statement (coverity).
163 d3dx9_36: D3DXCreateFontIndirectW seems no longer to be a stub.
164 start: Fix mask for creation flags (coverity).
165 winmm: Mark up fallthrough switch case (coverity).
166 winhlp32: Mark up fallthrough switch case (coverity).
167 xcopy: Fix indentation of a break (coverity).
170 po: Update Lithuanian translation.
171 po: Update Lithuanian translation.
174 d3drm: Init vertices before creating group.
175 d3drm: Move mesh builder data cleaning code into a separate function.
176 kernel32: Implement CompareStringOrdinal.
177 dmusic: Dump port params only once.
178 dmusic: Display new ref in AddRef and Release.
179 dmusic: Remove unused variables.
180 dmusic: Init port caps dwSize member before calling GetPortCaps.
181 d3dxof/tests: Pass level by value in process_data rather than a pointer.
184 msvcp90: Set eof state in istream<>::peek if got eof.
185 msvcp: Sync istream<>::peek implementations.
186 msvcp90: Update fpos<>::off instead of pos in stringbuf<>::seekoff.
187 msvcp90: Fix usage of fpos<>::off vs fpos<>::pos.
188 msvcp90: In istream<>::tellg don't use sentry.
189 msvcp: Sync fpos usage and istream<>::tellg.
190 msvcrt: Return value from MSVCRT____mb_cur_max_func instead of pointer.
191 msvcp90: Use streambuf sgetc/snextc in std::getline(istream<> &).
192 msvcp: Sync std::getline(istream<> &) implementations.
193 shell32: Initialize fAnyOperationsAborted in SHFileOperation.
194 msvcp90/tests: Add fstream<>::tellg tests.
196 Detlef Riekenberg (6):
197 winhttp: Accept WINHTTP_OPTION_CONFIGURE_PASSPORT_AUTH as session option.
198 schtasks: Add a stub schtasks.exe.
199 mstask: Implement GetTargetComputer.
200 mstask/tests: Add tests for GetTargetComputer.
201 mstask: Implement SetTargetComputer.
202 mstask/tests: Add tests for SetTargetComputer.
204 Dmitry Timoshkov (4):
205 gdiplus: Add support for extra transformation in GdipMeasureDriverString and GdipDrawDriverString.
206 gdiplus: Allocate a copy of the graphics transformation matrix on the stack instead of cloning it.
207 gdiplus: Avoid GdipCloneMatrix calls for the graphics transformation matrix.
208 gdiplus: Store transformation matrix directly in the objects.
211 ntdll: Implement nanosecond precision file time storage.
214 services: Fix compilation on systems that don't support nameless unions.
215 cmd: Make WCMD_forf_getinputhandle() static.
216 winemenubuilder: Use the same icon name on Mac OS X as on Unix.
217 winemenubuilder: Return the icon identifier instead of the full path on Mac OS X too.
218 kernel32/tests: Make test_CompareStringOrdinal() static.
219 msvcp71: Remove an unused VTBL wrapper.
220 Assorted spelling fixes.
222 Frédéric Delanoy (14):
223 ws2_32/tests: Remove dead code (coverity).
224 crypt32: Avoid double free in CRYPT_LoadSIP on error path (coverity).
225 gdiplus/tests: Cleanup resources on error path in test_font_height_scaling (coverity).
226 po: Update French translation.
227 cmd: Avoid handle leaks (coverity).
228 rpcrt4: Fix resources leaks.
229 cmd: Fix some leaks (coverity).
230 msvfw32: Fix a leak (coverity).
231 msi: Fix a leak (coverity).
232 cmd/tests: Simplify 'if' comparison tests.
233 iphlapi: Fix some leaks (coverity).
234 msi: Fix some leaks (coverity).
235 d3drm: Fix a leak (coverity).
236 ole32: Fix some leaks (coverity).
239 comctl32: Use the dialog template caption as default propsheet title.
240 msi: Add a test for embedded nulls in string property values.
241 msi: Add more tests for embedded nulls in string property values.
242 msi: Add support for storing strings with embedded nulls in the string table.
243 msi: Store string length in the record structure.
244 msi: Get rid of MSI_RecordSetStringA.
245 msi: Preserve strings with embedded nulls in the record implementation.
246 msi: Preserve strings with embedded nulls when copying from the string table to a record.
247 msi: Preserve strings with embedded nulls when copying from a record to the string table.
248 msi: Add a length parameter to msi_set_property and use it where appropriate.
249 msi: Return length instead of size from deformat_string.
250 msi: Don't create a copy of deferred custom action data.
251 msi: Add a length parameter to msi_strcpy_to_awstring and use it where appropriate.
252 msi: Pass string length to msi_set_property in ACTION_CustomAction.
253 winhttp: Fix the error returned from WinHttpGetProxyForUrl when autodetection fails.
254 wbemprox: Avoid a crash when serializing object text.
255 msi: Return length for the empty string in msi_string_lookup.
256 msi: Fix handling of strings with embedded nulls in msi_addstring.
257 msi: Preserve strings with embedded nulls in the record formatting implementation.
258 msi: Fix handling of REG_MULTI_SZ values in the WriteRegistryValues action.
259 msi: Avoid a crash when target paths have not yet been resolved.
260 msi: Return correct length for the empty string from deformat_string.
261 msi: Remove a component regardless of its install state, unless it's a permanent component.
262 msi: Make sure either the REINSTALL or the REMOVE property is set when the product is already installed.
263 msi: Register dlls in a separate process.
264 xpssvcs: Add stub dll.
265 msi: Fix use of uninitialized variables.
266 msi: Avoid a string copy when comparing SQL keywords.
269 d3dx9: Avoid LPDIRECT3DSURFACE9.
270 d3dx9: Avoid LPDIRECT3DVOLUME9.
271 d3dx9: Avoid LPDIRECT3DDEVICE9.
272 dxdiagn: Avoid depending on ddraw.h.
273 wined3d: Don't depend on device internals in fragment_pipeline.alloc_private().
274 d3d9/tests: Avoid LPDIRECT3DTEXTURE9.
275 d3d9/tests: Avoid LPDIRECT3DVERTEXBUFFER9.
276 d3d9/tests: Avoid LPDIRECT3DSURFACE9.
277 mmdevapi: Avoid a couple of dependencies on ddraw.h.
278 ddraw: Avoid LPDIRECTDRAWSURFACE7.
279 ddraw: Avoid LPDIRECTDRAWSURFACE4.
280 wined3d: Simplify shader selection.
281 wined3d: Enable or disable the fragment pipe in shader_select().
282 ddraw: Avoid LPDIRECTDRAWSURFACE3.
283 ddraw: Avoid LPDIRECTDRAWSURFACE2.
284 ddraw: Avoid LPDIRECTDRAWSURFACE.
285 wined3d: Use the shader object ids as program key.
286 wined3d: Introduce a separate structure for the vs specific fields in struct glsl_shader_prog_link.
287 ddraw: Avoid LPDIRECTDRAWPALETTE.
288 ddraw: Avoid LPDIRECTDRAWCLIPPER.
289 ddraw/tests: Avoid LPDIRECTDRAW7.
290 wined3d: Introduce a separate structure for the ps specific fields in struct glsl_shader_prog_link.
291 wined3d: Use more consistent names for the various bumpenv uniforms.
292 ddraw: Avoid LPDIRECTDRAW.
293 ddraw: Avoid LPDIRECT3DVERTEXBUFFER7.
294 wined3d: Use the correct RGTC constant in format_texture_info.
295 wined3d: Introduce a separate function for initializing vs uniform locations.
296 wined3d: Introduce a separate function for initializing ps uniform locations.
297 ddraw: Avoid LPDIRECT3DVERTEXBUFFER.
298 ddraw: Avoid LPDIRECT3DEXECUTEBUFFER.
299 ddraw: Avoid LPDIRECT3DTEXTURE2.
300 wined3d: Introduce a separate function for generating the fixed function fog GLSL code.
301 wined3d: Introduce a separate function for generating the sRGB write GLSL code.
304 wininet: Add a TLS fallback mechanism.
307 gdi32: Implement sub-pixel glyph smoothing.
308 vbscript: The first day of the week should default to Sunday, not the system default.
311 po: Update Korean translation.
312 po: Update Korean translation.
315 urlmon.idl: Moved CopyBindInfo declaration to public header.
316 urlmon.idl: Added ICodeInstall declaration.
317 vbscript: Added support for negative constants.
318 vbscript: Print more informative FIXME when parser fails.
319 d3dx9mesh.h: Fixed D3DXConvertMeshSubsetToStrips declaration.
320 vbscript: Added support for more builtin constants.
321 jscript: Fixed some leaks (coverity).
322 advpack: Added ExtractFilesW implementation.
323 urlmon.idl: Added AsyncInstallDistributionUnit declaration.
324 widl: Define PROXY_DELEGATION in dlldata.c when needed.
325 explorerframe: Moved TaskbarList implementation to explorerframe.
326 cabinet: Improved debug traces.
327 wininet: Write received data to cache before notifying progress.
328 wininet: Commit cache file as soon as all data is written.
329 urlmon: Moved extracting callback from IBindCtx to separated function.
330 urlmon: Added AsyncInstallDistributionUnit implementation.
331 mshtml: Try to install ActiveX if it's not registered.
332 jscript: Use prop_put in jsdisp_propput_dontenum.
333 jscript: Create non-enumerable properties in jsdisp_propput_const.
334 jscript: Use jsdisp_propput_dontenum where appropriate.
335 jscript: Added propertyIsEnumerable implementation.
336 jscript: Added more enumerable attribute tests.
337 mshtml: Don't call CP event sinks on detached documents.
338 mshtml: Keep reference to document node in fire_event_obj.
339 mshtml: Ignore one more property change notification to fix some IE installations.
340 widl: Ignore -app_config option.
341 mshtml: Added IHTMLObjectElement::name property implementation.
342 mshtml: Don't pass hash part of URI to EvaluateNewWindow.
343 mshtml: Call set_current_uri in navigate_proc.
344 mshtml: Use fregment-less URI in super_navigate.
345 mshtml: Added IPersistHistory::SaveHistory implementation.
346 mshtml: Use flags in navigation functions.
347 mshtml: Added IPersistStream::LoadHistory implementation.
348 jscript: Fixed leak in disp_propget.
351 cmd: Don't overflow parameter length when copying substring.
352 attrib: Support relative paths as args.
353 attrib: Add support for attrib /s.
354 attrib: Add attrib /d support.
355 cmd: Fix for loops within for loops.
356 xcopy: Fix resource leak (coverity).
357 attrib: Remove redundant code.
360 rsaenh: Ensure a PKCS1 data block has at least minimum length.
361 Revert "crypt32: Correct CryptVerifyMessageSignature's use of pcbDecoded.".
364 po: Update German translation.
365 po: Update German translation.
368 d3dx9: Rename copy_simple_data to convert_argb_pixels.
369 d3dx9: Rename point_filter_simple_data to point_filter_argb_pixels.
370 d3dx9: Introduce a function for copying pixels.
371 d3dx9: A simple copy isn't enough when a color key is provided.
372 d3dx9: Correct the FIXME message in ID3DXFont::GetGlyphData.
373 d3dx9: Handle NULL viewport in D3DXVec3Unproject.
374 d3dx9: Handle NULL arguments in D3DXVec3Project.
375 d3dx9: Handle NULL arguments in D3DXVec3Unproject.
378 winmm: Turn some MCI parser ERR into FIXME.
379 winealsa: Fix capture overrun logging.
380 ntdll: Do not execute callbacks past DeleteTimer(INVALID_HANDLE_VALUE).
381 winmm: Prefer using MMSYSERR_* over AUDCLNT_E_* from mmdevapi.
382 winmm: Avoid generic MMSYSERR_ERROR during initialisation.
383 winmm: Call IsFormatSupported for WAVE_FORMAT_QUERY only.
386 opengl32: Don't lose __wine_set_pixel_format() declaration during make_opengl.
389 po: Update Finnish translation.
390 po: Update Finnish translation.
392 Maarten Lankhorst (1):
393 ws2_32: Define IP_UNICAST_IF if not found on linux.
396 dsound: HeapFree secondaries (Coverity).
399 wined3d: Ensure GL_FRAGMENT_PROGRAM_ARB is enabled when using ARB shaders.
400 wined3d: Pop control frames in disabled if branches (ARB shader backend).
401 d3dcompiler: Don't take the sign as part of the numeric token.
402 d3dcompiler: Allow a comma at the end of an initializer.
403 d3dcompiler: Skip stray semicolons outside of functions.
404 d3dcompiler: Put data type name of constants on the heap.
406 Michael Stefaniuc (8):
407 user32/test: Don't over-allocate memory for DDEDATA.
408 ole32/tests: Fix a memleak on an error path (Smatch).
409 usp10: Use FIELD_OFFSET to calculate the size of a struct with variable length array.
410 user32: Avoid sizeof on structs with variable length array.
411 localspl: Avoid using sizeof on structs with variable length array.
412 gdi.exe16: Use FIELD_OFFSET to calculate the size of structs with variable length array.
413 itss: Use FIELD_OFFSET to calculate the size of a struct with variable length array.
414 msi: Use FIELD_OFFSET to calculate the size of structs with variable length array.
417 dwrite: Added initial test code for text analyzer tests.
418 dwrite: Added a stub for IDWriteTextAnalyzer.
419 dwrite: Implement initial script itemization for AnalyzeScript().
420 dwrite: Support itemization up to codepoint 0x2ff (Latin range).
421 dwrite: Support for Greek and Cyrillic ranges.
422 dwrite: Support for Armenian, Hebrew and complete Arabic ranges.
423 dwrite: Support nine more script ranges up to code point 0x0bff.
424 msxml3: Fix indexed access to schema collection namespace uris.
425 dwrite: Support more script ranges, up to Mongolian.
426 scrrun: Invoke() takes interface pointer, not a pointer to pointer.
427 scrrun: Added a stub for IFolder interface.
428 dwrite: Support eight more script ranges.
431 d3dx9_36: Add tests for D3DXSHRotateZ.
434 msvcrt: Fixed %Lf format handling in scanf.
435 msvcrt: Improved parsing precision of doubles in scanf.
436 comctl32: Don't update rebar layout if it doesn't change in REBAR_HandleUDDrag.
437 comctl32: Fixed RBBS_BREAK flag unsetting in REBAR_HandleUDDrag.
438 msvcp71: Ignore prot argument in Fiopen_wchar function.
439 msvcp71: Fixed basic_streambuf<wchar> vtable.
440 msvcrt: Allocate buffer in fwrite function.
441 msvcp90: Fixed incorrect sentry object usage.
442 msvcp90: Use critical sections in mutex object.
443 msvcrt: Improved scanf precision.
444 msvcrt: Improved _atoflt_l precision.
445 msvcrt: Improved _wcstod_l precision.
446 msvcrt: Improved strtod_l precision.
447 msvcrt: Fixed __p___mb_cur_max tests.
448 msvcp90: Fixed long long printing in tests.
449 msvcp90: Destroy string returned by basic_stringbuf_char_str_get.
450 msvcp: Fixed uninitialized variable access in num_get::_Getffld and _Getifld functions.
451 msvcp60: Fixed basic_streambuf class structure.
454 gdiplus: Fix logic of treating the region of a string as unclipped.
455 gdiplus: Mark regions as unclipped correctly.
458 opengl32: Fix outline-font glyphs rendering with incorrect front faces.
459 opengl32: Implement wglUseFontOutlines curve smoothing.
460 d3d9/tests: Add test for IDirect3DDevice9_Reset with BackBufferWidth/Height = 0.
461 opengl32: Implement the wglUseFontOutlines WGL_FONT_LINES format.
462 d3d8/tests: Add test for IDirect3DDevice8_Reset with BackBufferWidth/Height = 0.
463 opengl32: Apply correct normals to text rendered with wglUseFontOutlines.
466 ole32: Removed unused parametrs keyname and valuename in COM_RegReadPath.
469 gdiplus: Add tests for drawing recorded metafiles.
470 gdiplus: Implement drawing metafiles with an emf handle.
471 gdiplus: Implement GdipCloneImage for metafiles with a handle.
472 gdiplus: Reimplement GdipCreateMetafileFromEmf without using IPicture.