Moved libuuid to the dlls directory, and moved the DirectX GUIDs into
a separate libdxguid library.

diff --git a/dlls/Makedll.rules.in b/dlls/Makedll.rules.in
index c2baf69..affd99e 100644
--- a/dlls/Makedll.rules.in
+++ b/dlls/Makedll.rules.in
@@ -29,7 +29,7 @@
 	$(WINEBUILD) $(DEFS) $(DLLFLAGS) -o $@ --spec $(SRCDIR)/$(MAINSPEC) $(RC_SRCS:.rc=.res) $(ALL_OBJS) -L$(DLLDIR) $(DELAYIMPORTS:%=-d%) $(IMPORTS:%=-l%)
 
 $(MODULE).so: $(MAINSPEC).o $(ALL_OBJS) Makefile.in
-	$(LDDLL) $(MAINSPEC).o $(ALL_OBJS) -o $@ $(ALL_LIBS) -lc
+	$(LDDLL) $(MAINSPEC).o $(ALL_OBJS) -o $@ -L$(DLLDIR) $(ALL_LIBS) -lc
 
 # Rules for .dll files
 
@@ -45,7 +45,7 @@
 $(WIN16_FILES:%=__checklink16__%): checklink16
 
 checklink16:: $(MAINSPEC).o $(OBJS) $(MODULE).dbg.o dummy
-	$(CC) -o checklink -Wl,-rpath,$(TOPOBJDIR)/libs $(TOPSRCDIR)/dlls/checklink.c $(MAINSPEC).o $(OBJS) $(MODULE).dbg.o $(ALL_LIBS) && $(RM) checklink
+	$(CC) -o checklink -Wl,-rpath,$(TOPOBJDIR)/libs $(TOPSRCDIR)/dlls/checklink.c $(MAINSPEC).o $(OBJS) $(MODULE).dbg.o -L$(DLLDIR) $(ALL_LIBS) && $(RM) checklink
 
 checklink:: $(WIN16_FILES:%=__checklink16__%)
 
diff --git a/dlls/Makefile.in b/dlls/Makefile.in
index 8db5ebc..5962d46 100644
--- a/dlls/Makefile.in
+++ b/dlls/Makefile.in
@@ -144,9 +144,11 @@
 	d3d9 \
 	d3dx8 \
 	ddraw \
+	dxguid \
 	glu32 \
 	glut32 \
 	opengl32 \
+	uuid \
 	wined3d \
 	x11drv
 
@@ -251,6 +253,8 @@
 	iphlpapi.dll$(DLLEXT) \
 	joystick.drv$(DLLEXT) \
 	kernel32.dll$(DLLEXT) \
+	libdxguid.a \
+	libuuid.a \
 	lz32.dll$(DLLEXT) \
 	mapi32.dll$(DLLEXT) \
 	mcianim.drv$(DLLEXT) \
@@ -812,6 +816,12 @@
 x11drv.dll$(DLLEXT): x11drv/x11drv.dll$(DLLEXT)
 	$(RM) $@ && $(LN_S) x11drv/x11drv.dll$(DLLEXT) $@
 
+libdxguid.a: dxguid/libdxguid.a
+	$(RM) $@ && $(LN_S) dxguid/libdxguid.a $@
+
+libuuid.a: uuid/libuuid.a
+	$(RM) $@ && $(LN_S) uuid/libuuid.a $@
+
 
 # Import libraries
 
@@ -928,6 +938,11 @@
 	libwsock32 \
 	libx11drv
 
+ALL_IMPORT_LIBS = \
+	$(IMPORT_LIBS:%=%.$(IMPLIBEXT)) \
+	libdxguid.a \
+	libuuid.a
+
 libadvapi32.def: advapi32/advapi32.spec.def
 	$(RM) $@ && $(LN_S) advapi32/advapi32.spec.def $@
 libadvapi32.a: advapi32/advapi32.spec.def
@@ -1595,9 +1610,8 @@
 wsock32/wsock32.spec.def: $(WINEBUILD)
 x11drv/x11drv.spec.def: $(WINEBUILD)
 
-$(SUBDIRS): $(IMPORT_LIBS:%=%.$(IMPLIBEXT))
-$(SUBDIRS:%=%/__install__): $(IMPORT_LIBS:%=%.$(IMPLIBEXT))
-$(SUBDIRS:%=%/__crosstest__): $(IMPORT_LIBS:%=%.a)
+$(BUILDSUBDIRS): $(ALL_IMPORT_LIBS)
+$(INSTALLSUBDIRS:%=%/__install__): $(ALL_IMPORT_LIBS)
 
 # Map library name to the corresponding directory
 
@@ -1731,6 +1745,9 @@
 winsock/ws2_32.dll$(DLLEXT): winsock
 wsock32/wsock32.dll$(DLLEXT): wsock32
 x11drv/x11drv.dll$(DLLEXT): x11drv
+dxguid/libdxguid.a: dxguid
+uuid/libuuid.a: uuid
+
 # Rules for auto documentation
 
 $(SUBDIRS:%=%/__man__): dummy
@@ -1752,20 +1769,20 @@
 
 # Misc rules
 
-install install-dev:: $(IMPORT_LIBS:%=%.$(IMPLIBEXT))
+install install-dev:: $(ALL_IMPORT_LIBS)
 	$(MKINSTALLDIRS) $(dlldir)
-	for f in $(IMPORT_LIBS:%=%.$(IMPLIBEXT)); do $(INSTALL_DATA) $$f $(dlldir)/$$f; done
+	for f in $(ALL_IMPORT_LIBS); do $(INSTALL_DATA) $$f $(dlldir)/$$f; done
 
 install install-lib:: $(INSTALLSUBDIRS:%=%/__install__)
 
 uninstall::
-	$(RM) $(IMPORT_LIBS:%=$(dlldir)/%.$(IMPLIBEXT))
+	$(RM) $(ALL_IMPORT_LIBS:%=$(dlldir)/%)
 	-rmdir $(dlldir)
 
-implib: $(IMPORT_LIBS:%=%.$(IMPLIBEXT))
+implib: $(ALL_IMPORT_LIBS)
 
 clean::
-	$(RM) $(IMPORT_LIBS:%=%.a) $(IMPORT_LIBS:%=%.def) $(SYMLINKS)
+	$(RM) $(ALL_IMPORT_LIBS) $(SYMLINKS)
 
 check test:: $(BUILDSUBDIRS:%=%/__test__)
 
diff --git a/dlls/Maketest.rules.in b/dlls/Maketest.rules.in
index a7e6f3c..abf106a 100644
--- a/dlls/Maketest.rules.in
+++ b/dlls/Maketest.rules.in
@@ -41,12 +41,12 @@
 # Rules for .so main module
 
 $(MODULE).so: $(MODULE).spec.o $(OBJS) Makefile.in
-	$(LDDLL) $(MODULE).spec.o $(OBJS) -o $@ $(ALL_LIBS) -lc
+	$(LDDLL) $(MODULE).spec.o $(OBJS) -o $@ -L$(DLLDIR) $(ALL_LIBS) -lc
 
 # Rules for .exe main module
 
-$(MODULE): $(OBJS) $(RCOBJS) $(IMPORTLIBS) Makefile.in
-	$(CC) $(OBJS) $(RCOBJS) -o $@ -L$(DLLDIR) $(IMPORTS:%=-l%) $(ALL_LIBS)
+$(MODULE): $(OBJS) $(RCOBJS) Makefile.in
+	$(CC) $(OBJS) $(RCOBJS) -o $@ $(IMPORTS:%=-l%) $(EXTRALIBS) $(LDFLAGS) $(LIBS)
 
 # Rules for building test list
 
@@ -74,7 +74,7 @@
 crosstest:: @CROSSTEST@
 
 $(CROSSTEST): $(CROSSOBJS) Makefile.in
-	$(CROSSCC) $(CROSSOBJS) -o $@ $(IMPORTS:%=-l%) $(LIBS)
+	$(CROSSCC) $(CROSSOBJS) -o $@ $(IMPORTS:%=-l%) $(EXTRALIBS) $(LDFLAGS) $(LIBS)
 
 # Rules for cleaning
 
diff --git a/dlls/dxguid/.cvsignore b/dlls/dxguid/.cvsignore
new file mode 100644
index 0000000..f3c7a7c
--- /dev/null
+++ b/dlls/dxguid/.cvsignore
@@ -0,0 +1 @@
+Makefile
diff --git a/dlls/dxguid/Makefile.in b/dlls/dxguid/Makefile.in
new file mode 100644
index 0000000..10d628e
--- /dev/null
+++ b/dlls/dxguid/Makefile.in
@@ -0,0 +1,23 @@
+DEFS      = -D__WINESRC__
+DLLFLAGS  = @DLLFLAGS@
+TOPSRCDIR = @top_srcdir@
+TOPOBJDIR = ../..
+SRCDIR    = @srcdir@
+VPATH     = @srcdir@
+MODULE    = libdxguid.a
+
+C_SRCS = \
+	dx8guid.c \
+	dx9guid.c \
+	dxguid.c
+
+all: $(MODULE)
+
+@MAKE_RULES@
+
+$(MODULE): $(OBJS) Makefile.in
+	$(RM) $@
+	$(AR) $@ $(OBJS)
+	$(RANLIB) $@
+
+### Dependencies:
diff --git a/dlls/dxguid/dx8guid.c b/dlls/dxguid/dx8guid.c
new file mode 100644
index 0000000..4bd9dab
--- /dev/null
+++ b/dlls/dxguid/dx8guid.c
@@ -0,0 +1,35 @@
+/*
+ * DirectX 8 GUID definitions
+ *
+ * Copyright 2000 Alexandre Julliard
+ * Copyright 2000 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#include <stdarg.h>
+
+#define COM_NO_WINDOWS_H
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winuser.h"
+
+#include "objbase.h"
+#include "olectl.h"
+#include "initguid.h"
+
+#include "d3d8.h"
+#include "d3dx8core.h"
diff --git a/dlls/dxguid/dx9guid.c b/dlls/dxguid/dx9guid.c
new file mode 100644
index 0000000..d65ba90
--- /dev/null
+++ b/dlls/dxguid/dx9guid.c
@@ -0,0 +1,35 @@
+/*
+ * DirectX 9 GUID definitions
+ *
+ * Copyright 2000 Alexandre Julliard
+ * Copyright 2000 Francois Gouget
+ * Copyright 2003 Raphael Junqueira
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#include <stdarg.h>
+
+#define COM_NO_WINDOWS_H
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winuser.h"
+
+#include "objbase.h"
+#include "olectl.h"
+#include "initguid.h"
+
+#include "d3d9.h"
diff --git a/dlls/dxguid/dxguid.c b/dlls/dxguid/dxguid.c
new file mode 100644
index 0000000..83db7f9
--- /dev/null
+++ b/dlls/dxguid/dxguid.c
@@ -0,0 +1,46 @@
+/*
+ * DirectX GUID definitions
+ *
+ * Copyright 2000 Alexandre Julliard
+ * Copyright 2000 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#include <stdarg.h>
+
+#define COM_NO_WINDOWS_H
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winuser.h"
+
+#include "objbase.h"
+#include "oleauto.h"
+#include "olectl.h"
+#include "initguid.h"
+
+#include "d3d.h"
+#include "ddraw.h"
+#include "mmsystem.h"
+#include "dsound.h"
+#include "dsdriver.h"
+#include "dsconf.h"
+#include "dmusici.h"
+#include "dmusics.h"
+#include "dplay.h"
+#include "dplobby.h"
+#include "dinput.h"
+#include "ddrawi.h"
diff --git a/dlls/make_dlls b/dlls/make_dlls
index 9c7c74b..b720bf1 100755
--- a/dlls/make_dlls
+++ b/dlls/make_dlls
@@ -24,8 +24,8 @@
 
 my $makefiles = `find . -name Makefile.in -print`;
 
-my %imports = ();
 my %directories = ();
+my %implib_dirs = ();
 my %altnames = ();
 
 # list of special dlls that can be switched on or off by configure
@@ -61,8 +61,14 @@
         if (/^MODULE\s*=\s*([a-zA-Z0-9_.]+)/)
         {
             $module = $1;
-            $imports{$module} = [ ];
-            ($directories{$module} = $i) =~ s/^\.\/(.*)\/[^\/]+$/$1/;
+            if ($module =~ /^lib.*\.a$/)
+            {
+                ($implib_dirs{$module} = $i) =~ s/^\.\/(.*)\/[^\/]+$/$1/;
+            }
+            else
+            {
+                ($directories{$module} = $i) =~ s/^\.\/(.*)\/[^\/]+$/$1/;
+            }
             next;
         }
         if (/^ALTNAMES\s*=\s*(.*)/)
@@ -71,15 +77,8 @@
             $altnames{$module} = \@list;
             next;
         }
-        if (/^(DELAYIMPORTS|IMPORTS)\s*=\s*(.*)/)
-        {
-            my @list = map { /\./ ? $_ : $_ . ".dll"; } split(/\s/,$2);
-            push @{$imports{$module}}, @list;
-            next;
-        }
     }
     close MAKE;
-    push @{$imports{$module}}, "kernel32.dll" unless !defined($module) || @{$imports{$module}} || $module eq "ntdll.dll";
 }
 
 open NEWMAKE,">Makefile.in.new" or die "cannot create Makefile.in.new";
@@ -126,7 +125,7 @@
 }
 
 printf NEWMAKE "\n\nSUBDIRS = \\\n\t\$(BASEDIRS)";
-foreach my $dir (sort keys %special_dlls)
+foreach my $dir (sort (keys %special_dlls, values %implib_dirs))
 {
     printf NEWMAKE " \\\n\t%s", $dir;
 }
@@ -146,13 +145,15 @@
 foreach my $mod (sort keys %directories)
 {
     next if defined($special_dlls{$directories{$mod}});  # skip special dlls
-    $targets{sprintf("%s\$(DLLEXT)",$mod)} = 1;
+    $targets{$mod . "\$(DLLEXT)"} = 1;
     next unless defined $altnames{$mod};
     foreach my $i (sort @{$altnames{$mod}})
     {
         $targets16{sprintf("%s\$(DLLEXT)",$i)} = 1;
     }
 }
+foreach my $mod (sort keys %implib_dirs) { $targets{$mod} = 1; }
+
 print NEWMAKE <<EOF;
 
 \@MAKE_RULES\@
@@ -204,7 +205,11 @@
         printf NEWMAKE "\t\$(RM) \$@ && \$(LN_S) %s\$(DLLEXT) \$@\n\n", $mod;
     }
 }
-
+foreach my $mod (sort keys %implib_dirs)
+{
+    printf NEWMAKE "%s: %s/%s\n", $mod, $implib_dirs{$mod}, $mod;
+    printf NEWMAKE "\t\$(RM) \$@ && \$(LN_S) %s/%s \$@\n\n", $implib_dirs{$mod}, $mod;
+}
 
 ################################################################
 # output the import libraries rules
@@ -219,6 +224,11 @@
     $def =~ s/\.(dll|drv)$//;
     printf NEWMAKE " \\\n\tlib%s", $def;
 }
+print NEWMAKE "\n\nALL_IMPORT_LIBS = \\\n\t\$(IMPORT_LIBS:%=%.\$(IMPLIBEXT))";
+foreach my $mod (sort keys %implib_dirs)
+{
+    printf NEWMAKE " \\\n\t%s", $mod;
+}
 print NEWMAKE "\n\n";
 
 foreach my $mod (sort @implibs)
@@ -244,9 +254,8 @@
 
 print NEWMAKE <<EOF;
 
-\$(SUBDIRS): \$(IMPORT_LIBS:%=%.\$(IMPLIBEXT))
-\$(SUBDIRS:%=%/__install__): \$(IMPORT_LIBS:%=%.\$(IMPLIBEXT))
-\$(SUBDIRS:%=%/__crosstest__): \$(IMPORT_LIBS:%=%.a)
+\$(BUILDSUBDIRS): \$(ALL_IMPORT_LIBS)
+\$(INSTALLSUBDIRS:%=%/__install__): \$(ALL_IMPORT_LIBS)
 
 EOF
 
@@ -259,11 +268,16 @@
 {
     printf NEWMAKE "%s/%s\$(DLLEXT): %s\n", $directories{$mod}, $mod, $directories{$mod};
 }
+foreach my $mod (sort keys %implib_dirs)
+{
+    printf NEWMAKE "%s/%s: %s\n", $implib_dirs{$mod}, $mod, $implib_dirs{$mod};
+}
 
 ################################################################
 # makefile trailer
 
 print NEWMAKE <<EOF;
+
 # Rules for auto documentation
 
 \$(SUBDIRS:%=%/__man__): dummy
@@ -285,20 +299,20 @@
 
 # Misc rules
 
-install install-dev:: \$(IMPORT_LIBS:%=%.\$(IMPLIBEXT))
+install install-dev:: \$(ALL_IMPORT_LIBS)
 	\$(MKINSTALLDIRS) \$(dlldir)
-	for f in \$(IMPORT_LIBS:%=%.\$(IMPLIBEXT)); do \$(INSTALL_DATA) \$\$f \$(dlldir)/\$\$f; done
+	for f in \$(ALL_IMPORT_LIBS); do \$(INSTALL_DATA) \$\$f \$(dlldir)/\$\$f; done
 
 install install-lib:: \$(INSTALLSUBDIRS:%=%/__install__)
 
 uninstall::
-	\$(RM) \$(IMPORT_LIBS:%=\$(dlldir)/%.\$(IMPLIBEXT))
+	\$(RM) \$(ALL_IMPORT_LIBS:%=\$(dlldir)/%)
 	-rmdir \$(dlldir)
 
-implib: \$(IMPORT_LIBS:%=%.\$(IMPLIBEXT))
+implib: \$(ALL_IMPORT_LIBS)
 
 clean::
-	\$(RM) \$(IMPORT_LIBS:%=%.a) \$(IMPORT_LIBS:%=%.def) \$(SYMLINKS)
+	\$(RM) \$(ALL_IMPORT_LIBS) \$(SYMLINKS)
 
 check test:: \$(BUILDSUBDIRS:%=%/__test__)
 
diff --git a/dlls/uuid/.cvsignore b/dlls/uuid/.cvsignore
new file mode 100644
index 0000000..f3c7a7c
--- /dev/null
+++ b/dlls/uuid/.cvsignore
@@ -0,0 +1 @@
+Makefile
diff --git a/dlls/uuid/Makefile.in b/dlls/uuid/Makefile.in
new file mode 100644
index 0000000..a7a4dcf
--- /dev/null
+++ b/dlls/uuid/Makefile.in
@@ -0,0 +1,21 @@
+DEFS      = -D__WINESRC__
+DLLFLAGS  = @DLLFLAGS@
+TOPSRCDIR = @top_srcdir@
+TOPOBJDIR = ../..
+SRCDIR    = @srcdir@
+VPATH     = @srcdir@
+MODULE    = libuuid.a
+
+C_SRCS = \
+	uuid.c
+
+all: $(MODULE)
+
+@MAKE_RULES@
+
+$(MODULE): $(OBJS) Makefile.in
+	$(RM) $@
+	$(AR) $@ $(OBJS)
+	$(RANLIB) $@
+
+### Dependencies:
diff --git a/dlls/uuid/uuid.c b/dlls/uuid/uuid.c
new file mode 100644
index 0000000..ed1ac3e
--- /dev/null
+++ b/dlls/uuid/uuid.c
@@ -0,0 +1,75 @@
+/*
+ * GUID definitions
+ *
+ * Copyright 2000 Alexandre Julliard
+ * Copyright 2000 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#include <stdarg.h>
+
+#define COM_NO_WINDOWS_H
+#include "initguid.h"
+
+/* GUIDs defined in uuids.lib */
+
+DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0);
+
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winuser.h"
+
+#include "objbase.h"
+#include "servprov.h"
+
+#include "oleauto.h"
+#include "oleidl.h"
+#include "objidl.h"
+#include "olectl.h"
+
+#include "ocidl.h"
+
+#include "docobj.h"
+#include "exdisp.h"
+
+#include "shlguid.h"
+#include "shlobj.h"
+#include "comcat.h"
+#include "urlmon.h"
+
+/* FIXME: cguids declares GUIDs but does not define their values */
+
+/* other GUIDs */
+
+#include "vfw.h"
+
+#include "uuids.h"
+
+/* the GUID for these interfaces are already defined by dxguid.c */
+#define __IReferenceClock_INTERFACE_DEFINED__
+#define __IKsPropertySet_INTERFACE_DEFINED__
+#include "strmif.h"
+#include "control.h"
+
+/* GUIDs not declared in an exported header file */
+DEFINE_GUID(IID_IDirectPlaySP,0xc9f6360,0xcc61,0x11cf,0xac,0xec,0x00,0xaa,0x00,0x68,0x86,0xe3);
+DEFINE_GUID(IID_ISFHelper,0x1fe68efb,0x1874,0x9812,0x56,0xdc,0x00,0x00,0x00,0x00,0x00,0x00);
+DEFINE_GUID(IID_IDPLobbySP,0x5a4e5a20,0x2ced,0x11d0,0xa8,0x89,0x00,0xa0,0xc9,0x05,0x43,0x3c);
+
+DEFINE_GUID(FMTID_SummaryInformation,0xF29F85E0,0x4FF9,0x1068,0xAB,0x91,0x08,0x00,0x2B,0x27,0xB3,0xD9);
+DEFINE_GUID(FMTID_DocSummaryInformation,0xD5CDD502,0x2E9C,0x101B,0x93,0x97,0x08,0x00,0x2B,0x2C,0xF9,0xAE);
+DEFINE_GUID(FMTID_UserDefinedProperties,0xD5CDD505,0x2E9C,0x101B,0x93,0x97,0x08,0x00,0x2B,0x2C,0xF9,0xAE);