>From 605066943c07af18504fa25205de16fa043ee82e Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Wed, 25 Jan 2012 15:57:10 +1100
Subject: [PATCH] Register Scripting interfaces
To: wine-patches <wine-patches@winehq.org>

---
 dlls/scrrun/Makefile.in |    2 +
 dlls/scrrun/scrrun.idl  |  688 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 690 insertions(+), 0 deletions(-)
 create mode 100644 dlls/scrrun/scrrun.idl

diff --git a/dlls/scrrun/Makefile.in b/dlls/scrrun/Makefile.in
index 38f7652..4988a2c 100644
--- a/dlls/scrrun/Makefile.in
+++ b/dlls/scrrun/Makefile.in
@@ -4,4 +4,6 @@ C_SRCS = scrrun.c
 
 RC_SRCS = scrrun.rc
 
+IDL_TLB_SCRS = scrrun.idl
+
 @MAKE_DLL_RULES@
diff --git a/dlls/scrrun/scrrun.idl b/dlls/scrrun/scrrun.idl
new file mode 100644
index 0000000..6d075b6
--- /dev/null
+++ b/dlls/scrrun/scrrun.idl
@@ -0,0 +1,688 @@
+/*
+ * Copyright (C) 2012 Alistair Leslie-Hughes
+ *
+ * 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
+ */
+import "unknwn.idl";
+import "objidl.idl";
+import "oaidl.idl";
+
+
+[
+  uuid(420B2830-E718-11CF-893D-00A0C9054228),
+  version(1.0)
+]
+library Scripting
+{
+    importlib("stdole2.tlb");
+
+    interface IDictionary;
+    interface IDrive;
+    interface IDriveCollection;
+    interface IFile;
+    interface IFileCollection;
+    interface IFileSystem;
+    interface IFileSystem3;
+    interface IFolder;
+    interface IFolderCollection;
+    interface IScriptEncoder;
+    interface ITextStream;
+
+    typedef enum CompareMethod
+    {
+        BinaryCompare   = 0,
+        TextCompare     = 1,
+        DatabaseCompare = 2
+    } CompareMethod;
+
+    typedef enum IOMode
+    {
+        ForReading   = 1,
+        ForWriting   = 2,
+        ForAppending = 8
+    } IOMode;
+
+    typedef enum Tristate
+    {
+        TristateTrue       = 0xffffffff,
+        TristateFalse      = 0,
+        TristateUseDefault = 0xfffffffe,
+        TristateMixed      = 0xfffffffe
+    } Tristate;
+
+    typedef enum FileAttribute
+    {
+        Normal = 0,
+        ReadOnly = 1,
+        Hidden = 2,
+        System = 4,
+        Volume = 8,
+        Directory = 16,
+        Archive = 32,
+        Alias = 1024,
+        Compressed = 2048
+    } FileAttribute;
+
+        typedef enum SpecialFolderConst {
+        WindowsFolder = 0,
+        SystemFolder = 1,
+        TemporaryFolder = 2
+    } SpecialFolderConst;
+
+    typedef enum DriveTypeConst
+    {
+        UnknownType = 0,
+        Removable = 1,
+        Fixed = 2,
+        Remote = 3,
+        CDRom = 4,
+        RamDisk = 5
+    } DriveTypeConst;
+
+    typedef enum StandardStreamTypes
+    {
+        StdIn  = 0,
+        StdOut = 1,
+        StdErr = 2
+    } StandardStreamTypes;
+
+    [
+      odl,
+      uuid(42C642C1-97E1-11CF-978F-00A02463E06F),
+      hidden,
+      dual,
+      oleautomation
+    ]
+    interface IDictionary : IDispatch
+    {
+        [id(00000000), propputref]
+        HRESULT Item([in] VARIANT* Key, [in] VARIANT* pRetItem);
+
+        [id(00000000), propput]
+        HRESULT Item([in] VARIANT* Key, [in] VARIANT* pRetItem);
+
+        [id(00000000), propget]
+        HRESULT Item([in] VARIANT* Key, [out, retval] VARIANT* pRetItem);
+
+        [id(0x00000001)]
+        HRESULT Add([in] VARIANT* Key, [in] VARIANT* Item);
+
+        [id(0x00000002), propget]
+        HRESULT Count([out, retval] long* pCount);
+
+        [id(0x00000003)]
+        HRESULT Exists([in] VARIANT* Key, [out, retval] VARIANT_BOOL* pExists);
+
+        [id(0x00000004)]
+        HRESULT Items([out, retval] VARIANT* pItemsArray);
+
+        [id(0x00000005), propput]
+        HRESULT Key([in] VARIANT* Key, [in] VARIANT* rhs);
+
+        [id(0x00000006)]
+        HRESULT Keys([out, retval] VARIANT* pKeysArray);
+
+        [id(0x00000007)]
+        HRESULT Remove([in] VARIANT* Key);
+
+        [id(0x00000008)]
+        HRESULT RemoveAll();
+
+        [id(0x00000009), propput]
+        HRESULT CompareMode([in] CompareMethod pcomp);
+
+        [id(0x00000009), propget]
+        HRESULT CompareMode([out, retval] CompareMethod* pcomp);
+
+        [id(DISPID_NEWENUM), restricted]
+        HRESULT _NewEnum([out, retval] IUnknown** ppunk);
+
+        [id(0x0000000a), propget, hidden]
+        HRESULT HashVal([in] VARIANT* Key, [out, retval] VARIANT* HashVal);
+    };
+
+    [
+      odl,
+      uuid(0AB5A3D0-E5B6-11D0-ABF5-00A0C90FFFC0),
+      hidden,
+      dual,
+      nonextensible,
+      oleautomation
+    ]
+    interface IFileSystem : IDispatch
+    {
+        [id(0x0000271a), propget]
+        HRESULT Drives([out, retval] IDriveCollection** ppdrives);
+
+        [id(0x00002710)]
+        HRESULT BuildPath([in] BSTR Path, [in] BSTR Name, [out, retval] BSTR* pbstrResult);
+
+        [id(0x00002714)]
+        HRESULT GetDriveName([in] BSTR Path, [out, retval] BSTR* pbstrResult);
+
+        [id(0x00002715)]
+        HRESULT GetParentFolderName([in] BSTR Path, [out, retval] BSTR* pbstrResult);
+
+        [id(0x00002716)]
+        HRESULT GetFileName([in] BSTR Path, [out, retval] BSTR* pbstrResult);
+
+        [id(0x00002717)]
+        HRESULT GetBaseName([in] BSTR Path, [out, retval] BSTR* pbstrResult);
+
+        [id(0x00002718)]
+        HRESULT GetExtensionName([in] BSTR Path, [out, retval] BSTR* pbstrResult);
+
+        [id(0x00002712)]
+        HRESULT GetAbsolutePathName([in] BSTR Path, [out, retval] BSTR* pbstrResult);
+
+        [id(0x00002713)]
+        HRESULT GetTempName([out, retval] BSTR* pbstrResult);
+
+        [id(0x0000271f)]
+        HRESULT DriveExists([in] BSTR DriveSpec, [out, retval] VARIANT_BOOL* pfExists);
+
+        [id(0x00002720)]
+        HRESULT FileExists([in] BSTR FileSpec, [out, retval] VARIANT_BOOL* pfExists);
+
+        [id(0x00002721)]
+        HRESULT FolderExists([in] BSTR FolderSpec, [out, retval] VARIANT_BOOL* pfExists);
+
+        [id(0x0000271b)]
+        HRESULT GetDrive([in] BSTR DriveSpec, [out, retval] IDrive** ppdrive);
+
+        [id(0x0000271c)]
+        HRESULT GetFile([in] BSTR FilePath, [out, retval] IFile** ppfile);
+
+        [id(0x0000271d)]
+        HRESULT GetFolder([in] BSTR FolderPath, [out, retval] IFolder** ppfolder);
+
+        [id(0x0000271e)]
+        HRESULT GetSpecialFolder([in] SpecialFolderConst SpecialFolder, [out, retval] IFolder** ppfolder);
+
+        [id(0x000004b0)]
+        HRESULT DeleteFile([in] BSTR FileSpec, [in, optional, defaultvalue(0)] VARIANT_BOOL Force);
+
+        [id(0x000004b1)]
+        HRESULT DeleteFolder([in] BSTR FolderSpec, [in, optional, defaultvalue(0)] VARIANT_BOOL Force);
+
+        [id(0x000004b4), helpstring("Move a file"), helpcontext(0x00214bab)]
+        HRESULT MoveFile([in] BSTR Source, [in] BSTR Destination);
+
+        [id(0x000004b5)]
+        HRESULT MoveFolder([in] BSTR Source, [in] BSTR Destination);
+
+        [id(0x000004b2)]
+        HRESULT CopyFile([in] BSTR Source, [in] BSTR Destination,
+                         [in, optional, defaultvalue(-1)] VARIANT_BOOL OverWriteFiles);
+
+        [id(0x000004b3)]
+        HRESULT CopyFolder([in] BSTR Source, [in] BSTR Destination,
+                           [in, optional, defaultvalue(-1)] VARIANT_BOOL OverWriteFiles);
+
+        [id(0x00000460)]
+        HRESULT CreateFolder([in] BSTR Path, [out, retval] IFolder** ppfolder);
+
+        [id(0x0000044d)]
+        HRESULT CreateTextFile([in] BSTR FileName, [in, optional, defaultvalue(-1)] VARIANT_BOOL Overwrite,
+                        [in, optional, defaultvalue(0)] VARIANT_BOOL Unicode, [out, retval] ITextStream** ppts);
+
+        [id(0x0000044c)]
+        HRESULT OpenTextFile([in] BSTR FileName, [in, optional, defaultvalue(1)] IOMode IOMode,
+                        [in, optional, defaultvalue(0)] VARIANT_BOOL Create,
+                        [in, optional, defaultvalue(0)] Tristate Format,
+                        [out, retval] ITextStream** ppts);
+    };
+
+    [
+      odl,
+      uuid(C7C3F5A1-88A3-11D0-ABCB-00A0C90FFFC0),
+      hidden,
+      dual,
+      nonextensible,
+      oleautomation
+    ]
+    interface IDriveCollection : IDispatch {
+        [id(00000000)]
+        HRESULT Item([in] VARIANT Key, [out, retval] IDrive** ppdrive);
+
+        [id(DISPID_NEWENUM), propget, restricted, hidden]
+        HRESULT _NewEnum([out, retval] IUnknown** ppenum);
+
+        [id(0x00000001), propget]
+        HRESULT Count([out, retval] long* plCount);
+    };
+
+    [
+      odl,
+      uuid(C7C3F5A0-88A3-11D0-ABCB-00A0C90FFFC0),
+      hidden,
+      dual,
+      nonextensible,
+      oleautomation
+    ]
+    interface IDrive : IDispatch
+    {
+        [id(00000000), propget]
+        HRESULT Path([out, retval] BSTR* pbstrPath);
+
+        [id(0x00002710), propget]
+        HRESULT DriveLetter([out, retval] BSTR* pbstrLetter)
+;
+        [id(0x00002711), propget]
+        HRESULT ShareName([out, retval] BSTR* pbstrShareName);
+
+        [id(0x00002712), propget]
+        HRESULT DriveType([out, retval] DriveTypeConst* pdt);
+
+        [id(0x00002713), propget]
+        HRESULT RootFolder([out, retval] IFolder** ppfolder);
+
+        [id(0x00002715), propget]
+        HRESULT AvailableSpace([out, retval] VARIANT* pvarAvail);
+
+        [id(0x00002714), propget]
+        HRESULT FreeSpace([out, retval] VARIANT* pvarFree);
+
+        [id(0x00002716), propget]
+        HRESULT TotalSize([out, retval] VARIANT* pvarTotal);
+
+        [id(0x00002717), propget]
+        HRESULT VolumeName([out, retval] BSTR* pbstrName);
+
+        [id(0x00002717), propput]
+        HRESULT VolumeName([in] BSTR pbstrName);
+
+        [id(0x00002718), propget]
+        HRESULT FileSystem([out, retval] BSTR* pbstrFileSystem);
+
+        [id(0x00002719), propget]
+        HRESULT SerialNumber([out, retval] long* pulSerialNumber);
+
+        [id(0x0000271a), propget]
+        HRESULT IsReady([out, retval] VARIANT_BOOL* pfReady);
+    };
+
+    [
+      odl,
+      uuid(C7C3F5A2-88A3-11D0-ABCB-00A0C90FFFC0),
+      hidden,
+      dual,
+      nonextensible,
+      oleautomation
+    ]
+    interface IFolder : IDispatch
+    {
+        [id(00000000), propget]
+        HRESULT Path([out, retval] BSTR* pbstrPath);
+
+        [id(0x000003e8), propget]
+        HRESULT Name([out, retval] BSTR* pbstrName);
+
+        [id(0x000003e8), propput]
+        HRESULT Name([in] BSTR pbstrName);
+
+        [id(0x000003ea), propget]
+        HRESULT ShortPath([out, retval] BSTR* pbstrPath);
+
+        [id(0x000003e9), propget]
+        HRESULT ShortName([out, retval] BSTR* pbstrName);
+
+        [id(0x000003ec), propget]
+        HRESULT Drive([out, retval] IDrive** ppdrive);
+
+        [id(0x000003ed), propget]
+        HRESULT ParentFolder([out, retval] IFolder** ppfolder);
+
+        [id(0x000003eb), propget]
+        HRESULT Attributes([out, retval] FileAttribute* pfa);
+
+        [id(0x000003eb), propput]
+        HRESULT Attributes([in] FileAttribute pfa);
+
+        [id(0x000003ee), propget]
+        HRESULT DateCreated([out, retval] DATE* pdate);
+
+        [id(0x000003ef), propget]
+        HRESULT DateLastModified([out, retval] DATE* pdate);
+
+        [id(0x000003f0), propget]
+        HRESULT DateLastAccessed([out, retval] DATE* pdate);
+
+        [id(0x000003f2), propget]
+        HRESULT Type([out, retval] BSTR* pbstrType);
+
+        [id(0x000004b1)]
+        HRESULT Delete([in, optional, defaultvalue(0)] VARIANT_BOOL Force);
+
+        [id(0x000004b3)]
+        HRESULT Copy([in] BSTR Destination, [in, optional, defaultvalue(-1)] VARIANT_BOOL OverWriteFiles);
+
+        [id(0x000004b5)]
+        HRESULT Move([in] BSTR Destination);
+
+        [id(0x00002710), propget]
+        HRESULT IsRootFolder([out, retval] VARIANT_BOOL* pfRootFolder);
+
+        [id(0x000003f1), propget]
+        HRESULT Size([out, retval] VARIANT* pvarSize);
+
+        [id(0x00002711), propget]
+        HRESULT SubFolders([out, retval] IFolderCollection** ppfolders);
+
+        [id(0x00002712), propget]
+        HRESULT Files([out, retval] IFileCollection** ppfiles);
+
+        [id(0x0000044d)]
+        HRESULT CreateTextFile([in] BSTR FileName, [in, optional, defaultvalue(-1)] VARIANT_BOOL Overwrite,
+                        [in, optional, defaultvalue(0)] VARIANT_BOOL Unicode, [out, retval] ITextStream** ppts);
+    };
+
+    [
+      odl,
+      uuid(C7C3F5A3-88A3-11D0-ABCB-00A0C90FFFC0),
+      hidden,
+      dual,
+      nonextensible,
+      oleautomation
+    ]
+    interface IFolderCollection : IDispatch
+    {
+        [id(0x00000002)]
+        HRESULT Add([in] BSTR Name, [out, retval] IFolder** ppfolder);
+
+        [id(00000000), propget]
+        HRESULT Item([in] VARIANT Key, [out, retval] IFolder** ppfolder);
+
+        [id(DISPID_NEWENUM), propget, restricted, hidden]
+        HRESULT _NewEnum([out, retval] IUnknown** ppenum);
+
+        [id(0x00000001), propget]
+        HRESULT Count([out, retval] long* plCount);
+    };
+
+    [
+      odl,
+      uuid(C7C3F5A5-88A3-11D0-ABCB-00A0C90FFFC0),
+      hidden,
+      dual,
+      nonextensible,
+      oleautomation
+    ]
+    interface IFileCollection : IDispatch
+    {
+        [id(00000000), propget]
+        HRESULT Item([in] VARIANT Key, [out, retval] IFile** ppfile);
+
+        [id(DISPID_NEWENUM), propget, restricted, hidden]
+        HRESULT _NewEnum([out, retval] IUnknown** ppenum);
+
+        [id(0x00000001), propget]
+        HRESULT Count([out, retval] long* plCount);
+    };
+
+    [
+      odl,
+      uuid(C7C3F5A4-88A3-11D0-ABCB-00A0C90FFFC0),
+      hidden,
+      dual,
+      nonextensible,
+      oleautomation
+    ]
+    interface IFile : IDispatch
+    {
+        [id(00000000), propget]
+        HRESULT Path([out, retval] BSTR* pbstrPath);
+
+        [id(0x000003e8), propget]
+        HRESULT Name([out, retval] BSTR* pbstrName);
+
+        [id(0x000003e8), propput]
+        HRESULT Name([in] BSTR pbstrName);
+
+        [id(0x000003ea), propget]
+        HRESULT ShortPath([out, retval] BSTR* pbstrPath);
+
+        [id(0x000003e9), propget]
+        HRESULT ShortName([out, retval] BSTR* pbstrName);
+
+        [id(0x000003ec), propget]
+        HRESULT Drive([out, retval] IDrive** ppdrive);
+
+        [id(0x000003ed), propget]
+        HRESULT ParentFolder([out, retval] IFolder** ppfolder);
+
+        [id(0x000003eb), propget]
+        HRESULT Attributes([out, retval] FileAttribute* pfa);
+
+        [id(0x000003eb), propput]
+        HRESULT Attributes([in] FileAttribute pfa);
+
+        [id(0x000003ee), propget]
+        HRESULT DateCreated([out, retval] DATE* pdate);
+
+        [id(0x000003ef), propget]
+        HRESULT DateLastModified([out, retval] DATE* pdate);
+
+        [id(0x000003f0), propget]
+        HRESULT DateLastAccessed([out, retval] DATE* pdate);
+
+        [id(0x000003f1), propget]
+        HRESULT Size([out, retval] VARIANT* pvarSize);
+
+        [id(0x000003f2), propget]
+        HRESULT Type([out, retval] BSTR* pbstrType);
+
+        [id(0x000004b0)]
+        HRESULT Delete([in, optional, defaultvalue(0)] VARIANT_BOOL Force);
+
+        [id(0x000004b2)]
+        HRESULT Copy([in] BSTR Destination, [in, optional, defaultvalue(-1)] VARIANT_BOOL OverWriteFiles);
+
+        [id(0x000004b4)]
+        HRESULT Move([in] BSTR Destination);
+
+        [id(0x0000044c)]
+        HRESULT OpenAsTextStream([in, optional, defaultvalue(1)] IOMode IOMode,
+                        [in, optional, defaultvalue(0)] Tristate Format, [out, retval] ITextStream** ppts);
+    };
+
+    [
+      odl,
+      uuid(53BAD8C1-E718-11CF-893D-00A0C9054228),
+      hidden,
+      dual,
+      nonextensible,
+      oleautomation
+    ]
+    interface ITextStream : IDispatch
+    {
+        [id(0x00002710), propget]
+        HRESULT Line([out, retval] long* Line);
+
+        [id(0xfffffdef), propget]
+        HRESULT Column([out, retval] long* Column);
+
+        [id(0x00002712), propget]
+        HRESULT AtEndOfStream([out, retval] VARIANT_BOOL* EOS);
+
+        [id(0x00002713), propget]
+        HRESULT AtEndOfLine([out, retval] VARIANT_BOOL* EOL);
+
+        HRESULT Read([in] long Characters, [out, retval] BSTR* Text);
+
+        [id(0x00002715)]
+        HRESULT ReadLine([out, retval] BSTR* Text);
+
+        [id(0x00002716)]
+        HRESULT ReadAll([out, retval] BSTR* Text);
+
+        [id(0x00002717)]
+        HRESULT Write([in] BSTR Text);
+
+        [id(0x00002718)]
+        HRESULT WriteLine([in, optional, defaultvalue("")] BSTR Text);
+
+        [id(0x00002719)]
+        HRESULT WriteBlankLines([in] long Lines);
+
+        [id(0x0000271a)]
+        HRESULT Skip([in] long Characters);
+
+        [id(0x0000271b)]
+        HRESULT SkipLine();
+
+        [id(0x0000271c)]
+        HRESULT Close();
+    };
+
+    [
+      odl,
+      uuid(2A0B9D10-4B87-11D3-A97A-00104B365C9F),
+      dual,
+      nonextensible,
+      oleautomation
+    ]
+    interface IFileSystem3 : IFileSystem
+    {
+        [id(0x00004e20)]
+        HRESULT GetStandardStream([in] StandardStreamTypes StandardStreamType,
+                        [in, optional, defaultvalue(0)] VARIANT_BOOL Unicode, [out, retval] ITextStream** ppts);
+
+        [id(0x00004e2a)]
+        HRESULT GetFileVersion([in] BSTR FileName, [out, retval] BSTR* FileVersion);
+    };
+
+    [
+      odl,
+      uuid(AADC65F6-CFF1-11D1-B747-00C04FC2B085),
+      dual,
+      oleautomation
+    ]
+    interface IScriptEncoder : IDispatch
+    {
+        [id(00000000)]
+        HRESULT EncodeScriptFile([in] BSTR szExt, [in] BSTR bstrStreamIn, [in] long cFlags,
+                        [in] BSTR bstrDefaultLang, [out, retval] BSTR* pbstrStreamOut);
+    };
+
+
+    [
+      uuid(EE09B103-97E0-11CF-978F-00A02463E06F),
+      version(1.0),
+      helpstring("Scripting.Dictionary"),
+      threading(apartment),
+      progid("Scripting.Dictionary")
+    ]
+    coclass Dictionary
+    {
+        [default] interface IDictionary;
+    };
+
+    [
+      uuid(0D43FE01-F093-11CF-8940-00A0C9054228),
+      version(1.0),
+      helpstring("FileSystem Object"),
+      threading(both),
+      progid("Scripting.FileSystemObject")
+    ]
+    coclass FileSystemObject
+    {
+        [default] interface IFileSystem3;
+    };
+
+    [
+      uuid(C7C3F5B1-88A3-11D0-ABCB-00A0C90FFFC0),
+      noncreatable,
+      version(1.0)
+    ]
+    coclass Drive
+    {
+        [default] interface IDrive;
+    };
+
+    [
+      uuid(C7C3F5B2-88A3-11D0-ABCB-00A0C90FFFC0),
+      noncreatable,
+      version(1.0)
+    ]
+    coclass Drives
+    {
+        [default] interface IDriveCollection;
+    };
+
+    [
+      uuid(C7C3F5B3-88A3-11D0-ABCB-00A0C90FFFC0),
+      noncreatable,
+      version(1.0)
+    ]
+    coclass Folder
+    {
+        [default] interface IFolder;
+    };
+
+    [
+      uuid(C7C3F5B4-88A3-11D0-ABCB-00A0C90FFFC0),
+      noncreatable,
+      version(1.0)
+    ]
+    coclass Folders
+    {
+        [default] interface IFolderCollection;
+    };
+
+    [
+      uuid(C7C3F5B5-88A3-11D0-ABCB-00A0C90FFFC0),
+      noncreatable,
+      version(1.0)
+    ]
+    coclass File
+    {
+        [default] interface IFile;
+    };
+
+    [
+      uuid(C7C3F5B6-88A3-11D0-ABCB-00A0C90FFFC0),
+      noncreatable,
+      version(1.0)
+    ]
+    coclass Files
+    {
+        [default] interface IFileCollection;
+    };
+
+    [
+      uuid(0BB02EC0-EF49-11CF-8940-00A0C9054228),
+      noncreatable,
+      version(1.0)
+    ]
+    coclass TextStream
+    {
+        [default] interface ITextStream;
+    };
+
+
+
+    [
+      uuid(32DA2B15-CFED-11D1-B747-00C04FC2B085),
+      version(1.0),
+      helpstring("Script Encoder Object"),
+      threading(apartment),
+      progid("Scripting.Encoder")
+    ]
+    coclass Encoder
+    {
+        [default] interface IScriptEncoder;
+    };
+};
-- 
1.7.5.4

