Hirdetés

Új hozzászólás Aktív témák

  • pmonitor

    aktív tag

    A rotlist.c, ill. a rotlist.cs file-ok a ROT-ot listázzák ki C-ben ill. C#-ban. A kódokat több helyről bányásztam össze, meg kellett 1 kis kreativitás is hozzá. C#-ban az IDispatch-t kétféleképpen is meg lehet valósítani. Így:
    [ComImport]
    [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
    [Guid("00020400-0000-0000-C000-000000000046")]
    private interface IDispatch
    {
    int GetTypeInfoCount();

    [return: MarshalAs(UnmanagedType.Interface)]
    ITypeInfo GetTypeInfo(
    [In, MarshalAs(UnmanagedType.U4)] int iTInfo,
    [In, MarshalAs(UnmanagedType.U4)] int lcid);

    void GetIDsOfNames(
    [In] ref Guid riid,
    [In, MarshalAs(UnmanagedType.LPArray)] string[] rgszNames,
    [In, MarshalAs(UnmanagedType.U4)] int cNames,
    [In, MarshalAs(UnmanagedType.U4)] int lcid,
    [Out, MarshalAs(UnmanagedType.LPArray)] int[] rgDispId);
    }

    vagy így:

    [ComImport()]
    [Guid("00020400-0000-0000-C000-000000000046")]
    [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
    private interface IDispatch
    {
    [PreserveSig]
    int GetTypeInfoCount(out int Count);

    [PreserveSig]
    int GetTypeInfo
    (
    [MarshalAs(UnmanagedType.U4)] int iTInfo,
    [MarshalAs(UnmanagedType.U4)] int lcid,
    out System.Runtime.InteropServices.ComTypes.ITypeInfo typeInfo
    );

    [PreserveSig]
    int GetIDsOfNames
    (
    ref Guid riid,
    [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPWStr)]
    string[] rgsNames,
    int cNames,
    int lcid,
    [MarshalAs(UnmanagedType.LPArray)] int[] rgDispId
    );

    [PreserveSig]
    int Invoke
    (
    int dispIdMember,
    ref Guid riid,
    uint lcid,
    ushort wFlags,
    ref System.Runtime.InteropServices.ComTypes.DISPPARAMS pDispParams,
    out object pVarResult,
    ref System.Runtime.InteropServices.ComTypes.EXCEPINFO pExcepInfo,
    IntPtr[] pArgErr
    );
    }

    Hogy melyik jobb, arról fogalmam sincs. Ha vki. tudja erre a választ, ő elmagyarázhatná. ROT bejegyzésben vannak pl. az ms office app-ok objektumai. Sajnos ha rendszergazdaként futtatjuk a kódokat, akkor nem működnek sem C-ben, sem C#-ban.

    http://www.bferi.hu/download.php ; http://bferi.hu/egyeb.php

Új hozzászólás Aktív témák