Auto-register d3dxof?

Francois Gouget fgouget at free.fr
Sun Sep 25 17:42:13 CDT 2005


On Windows, installing DirectX creates the following registry keys:

[Software\\Classes\\CLSID\\{4516EC43-8F20-11D0-9B6D-0000C0781BC3}]
@="DirectX File"

[Software\\Classes\\CLSID\\{4516EC43-8F20-11D0-9B6D-0000C0781BC3}\\InProcServer32]
@="d3dxof.dll"
"ThreadingModel"="Both"


Yet:
  * on Windows d3dxof.dll does not export Dll(Un)RegisterServer()
  * I could not find any other dll that creates this registry key when 
registered
  * if this key is removed, then when reinstalling DirectX complains 
about that but does not recreate it
  * dxdiag notices when this key is deleted

So I don't know how this key is supposed to get created. Maybe it gets 
directly created by the DirectX installer?

Do we have to follow Windows to the letter there? Is it so bad if in 
Wine d3dxof.dll is a self-registering dll? We already have the necessary 
Dll(Un)RegisterServer() functions, and even the required line in 
tools/wine.inf. All that's missing is exporting the functions in 
d3dxof.spec.


Changelog:

  * dlls/d3dxof/d3dxof.spec

    Francois Gouget <fgouget at free.fr>
    Export the Dll(Un)RegisterServer() functions to make d3dxof.dll a 
self-registering dll.
    This creates the missing CLSID\{4516EC43-8F20-11D0-9B6D-0000C0781BC3} 
registry key.

-- 
Francois Gouget         fgouget at free.fr        http://fgouget.free.fr/
                RFC 2549: ftp://ftp.isi.edu/in-notes/rfc2549.txt
                 IP over Avian Carriers with Quality of Service
-------------- next part --------------
Index: dlls/d3dxof/d3dxof.spec
===================================================================
RCS file: /var/cvs/wine/dlls/d3dxof/d3dxof.spec,v
retrieving revision 1.2
diff -u -p -r1.2 d3dxof.spec
--- dlls/d3dxof/d3dxof.spec	8 Aug 2005 17:35:29 -0000	1.2
+++ dlls/d3dxof/d3dxof.spec	25 Sep 2005 10:43:06 -0000
@@ -1,3 +1,5 @@
 @ stdcall DirectXFileCreate(ptr)
 @ stdcall -private DllCanUnloadNow()
 @ stdcall -private DllGetClassObject(ptr ptr ptr)
+@ stdcall -private DllRegisterServer()
+@ stdcall -private DllUnregisterServer()


More information about the wine-patches mailing list