// Generated IDL File (by Great Migrations Studio) 
// Created: 12/3/2025 09:39:56 AM
// Source: C:\Windows\System32\stdole32.tlb
// typelib filename: stdole32.tlb
[
    uuid(00020430-0000-0000-C000-000000000046),
    version(1.0),
    helpstring("OLE Automation"),
    restricted
]
library stdole
{

    // Forward declare all types defined in this typelib

    interface IUnknown;
    interface IDispatch;
    interface IEnumVARIANT;

    typedef struct tagGUID {
        unsigned long Data1;
        unsigned short Data2;
        unsigned short Data3;
        unsigned char Data4[8];
    } GUID;

    typedef struct tagDISPPARAMS {
        VARIANT* rgvarg;
        long* rgdispidNamedArgs;
        unsigned int cArgs;
        unsigned int cNamedArgs;
    } DISPPARAMS;

    typedef struct tagEXCEPINFO {
        unsigned short wCode;
        unsigned short wReserved;
        BSTR bstrSource;
        BSTR bstrDescription;
        BSTR bstrHelpFile;
        unsigned long dwHelpContext;
        void* pvReserved;
        void* pfnDeferredFillIn;
        SCODE scode;
    } EXCEPINFO;

    [
        odl,
        uuid(00000000-0000-0000-C000-000000000046)
    ]
    interface IUnknown {
        [id(0x60000000), restricted]
        HRESULT QueryInterface(
            [in] GUID* riid,
            [out] void** ppvObj);
        [id(0x60000001), restricted]
        unsigned long AddRef();
        [id(0x60000002), restricted]
        unsigned long Release();
    };

    [
        odl,
        uuid(00020400-0000-0000-C000-000000000046)
    ]
    interface IDispatch : IUnknown {
        [restricted]
        HRESULT _stdcall GetTypeInfoCount([out] unsigned int* pctinfo);
        [restricted]
        HRESULT _stdcall GetTypeInfo(
            [in] unsigned int itinfo,
            [in] unsigned long lcid,
            [out] void** pptinfo);
        [restricted]
        HRESULT _stdcall GetIDsOfNames(
            [in] GUID* riid,
            [in] char** rgszNames,
            [in] unsigned int cNames,
            [in] unsigned long lcid,
            [out] long* rgdispid);
        [restricted]
        HRESULT _stdcall Invoke(
            [in] long dispidMember,
            [in] GUID* riid,
            [in] unsigned long lcid,
            [in] unsigned short wFlags,
            [in] DISPPARAMS* pdispparams,
            [out] VARIANT* pvarResult,
            [out] EXCEPINFO* pexcepinfo,
            [out] unsigned int* puArgErr);
    };

    [
        odl,
        uuid(00020404-0000-0000-C000-000000000046)
    ]
    interface IEnumVARIANT : IUnknown {
        HRESULT _stdcall Next(
            [in] unsigned long celt,
            [in] VARIANT* rgvar,
            [out] unsigned long* pceltFetched);
        HRESULT _stdcall Skip([in] unsigned long celt);
        HRESULT _stdcall Reset();
        HRESULT _stdcall Clone([out] IEnumVARIANT** ppenum);
    };

};