converting from header files to Win32API declare

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Majed

    converting from header files to Win32API declare

    hi,
    I'm trying to convert some .h files to API Declaration to use the function
    and structs.
    one of it is this:
    NTMS_GUID CurrentLibrary; // the current library

    NTMS_GUID MediaPool; // media pool that the media belongs to

    NTMS_GUID Location; // actual location of the media

    DWORD LocationType;

    NTMS_GUID MediaType;

    NTMS_GUID HomeSlot; // home slot for online media

    CHAR szBarCode[NTMS_BARCODE_LE NGTH]; // bar code string

    DWORD BarCodeState; // current state of the bar code

    CHAR szSequenceNumbe r[NTMS_SEQUENCE_L ENGTH];

    DWORD MediaState; // current media state

    DWORD dwNumberOfParti tions;

    } NTMS_I1_PMIDINF ORMATIONA;

    which I've converted to this (vb.net):

    <StructLayout(L ayoutKind.Seque ntial)>

    Private Structure NTMS_I1_PMIDINF ORMATIONA

    Public CurrentLibrary As NTMS_GUID ' // the current library

    Public MediaPool As NTMS_GUID ' // media pool that the media belongs to

    Public Location As NTMS_GUID ' // actual location of the media

    Public LocationType As Int32

    Public MediaType As NTMS_GUID

    Public HomeSlot As NTMS_GUID ' // home slot for online media

    Public szBarCode(NTMS_ BARCODE_LENGTH) As Byte ' // bar code string

    Public BarCodeState As Int32 ' // current state of the bar code

    Public szSequenceNumbe r(NTMS_SEQUENCE _LENGTH) As Byte

    Public MediaState As Int32 ' // current media state

    Public dwNumberOfParti tions As Int32

    End Structure

    am I on the right track here and would you help me please converting this
    struct:

    typedef struct _NTMS_OBJECTINF ORMATIONW {

    DWORD dwSize;

    DWORD dwType;

    SYSTEMTIME Created;

    SYSTEMTIME Modified;

    NTMS_GUID ObjectGuid;

    BOOL Enabled;

    DWORD dwOperationalSt ate;

    WCHAR szName[NTMS_OBJECTNAME _LENGTH];

    WCHAR szDescription[NTMS_DESCRIPTIO N_LENGTH];

    #ifdef MIDL_PASS

    [switch_is(dwTyp e)] union {

    [case(NTMS_DRIVE )] NTMS_DRIVEINFOR MATIONW Drive;

    [case(NTMS_DRIVE _TYPE)] NTMS_DRIVETYPEI NFORMATIONW DriveType;

    [case(NTMS_LIBRA RY)] NTMS_LIBRARYINF ORMATION Library;

    [case(NTMS_CHANG ER)] NTMS_CHANGERINF ORMATIONW Changer;

    [case(NTMS_CHANG ER_TYPE)] NTMS_CHANGERTYP EINFORMATIONW ChangerType;

    [case(NTMS_STORA GESLOT)] NTMS_STORAGESLO TINFORMATION StorageSlot;

    [case(NTMS_IEDOO R)] NTMS_IEDOORINFO RMATION IEDoor;

    [case(NTMS_IEPOR T)] NTMS_IEPORTINFO RMATION IEPort;

    [case(NTMS_PHYSI CAL_MEDIA)] NTMS_PMIDINFORM ATIONW PhysicalMedia;

    [case(NTMS_LOGIC AL_MEDIA)] NTMS_LMIDINFORM ATION LogicalMedia;

    [case(NTMS_PARTI TION)] NTMS_PARTITIONI NFORMATIONW Partition;

    [case(NTMS_MEDIA _POOL)] NTMS_MEDIAPOOLI NFORMATION MediaPool;

    [case(NTMS_MEDIA _TYPE)] NTMS_MEDIATYPEI NFORMATION MediaType;

    [case(NTMS_LIBRE QUEST)] NTMS_LIBREQUEST INFORMATIONW LibRequest;

    [case(NTMS_OPREQ UEST)] NTMS_OPREQUESTI NFORMATIONW OpRequest;

    [case(NTMS_COMPU TER)] NTMS_COMPUTERIN FORMATION Computer;

    [default] ;

    } Info;

    #else

    union {

    NTMS_DRIVEINFOR MATIONW Drive;

    NTMS_DRIVETYPEI NFORMATIONW DriveType;

    NTMS_LIBRARYINF ORMATION Library;

    NTMS_CHANGERINF ORMATIONW Changer;

    NTMS_CHANGERTYP EINFORMATIONW ChangerType;

    NTMS_STORAGESLO TINFORMATION StorageSlot;

    NTMS_IEDOORINFO RMATION IEDoor;

    NTMS_IEPORTINFO RMATION IEPort;

    NTMS_PMIDINFORM ATIONW PhysicalMedia;

    NTMS_LMIDINFORM ATION LogicalMedia;

    NTMS_PARTITIONI NFORMATIONW Partition;

    NTMS_MEDIAPOOLI NFORMATION MediaPool;

    NTMS_MEDIATYPEI NFORMATION MediaType;

    NTMS_LIBREQUEST INFORMATIONW LibRequest;

    NTMS_OPREQUESTI NFORMATIONW OpRequest;

    NTMS_COMPUTERIN FORMATION Computer;

    } Info;

    #endif // MIDL_PASS

    } NTMS_OBJECTINFO RMATIONW, *LPNTMS_OBJECTI NFORMATIONW;



    Thanks All

    Majed


  • Majed

    #2
    Re: converting from header files to Win32API declare

    hi

    my post was missing the first line of the struct and here it is:



    typedef struct _NTMS_I1_PMIDIN FORMATIONA {

    NTMS_GUID CurrentLibrary; // the current library

    NTMS_GUID MediaPool; // media pool that the media belongs to

    NTMS_GUID Location; // actual location of the media

    DWORD LocationType;

    NTMS_GUID MediaType;

    NTMS_GUID HomeSlot; // home slot for online media

    CHAR szBarCode[NTMS_BARCODE_LE NGTH]; // bar code string

    DWORD BarCodeState; // current state of the bar code

    CHAR szSequenceNumbe r[NTMS_SEQUENCE_L ENGTH];

    DWORD MediaState; // current media state

    DWORD dwNumberOfParti tions;

    } NTMS_I1_PMIDINF ORMATIONA;

    I converted it to vb.net like this

    <StructLayout(L ayoutKind.Seque ntial)>

    Private Structure NTMS_I1_PMIDINF ORMATIONA

    Public CurrentLibrary As NTMS_GUID ' // the current library

    Public MediaPool As NTMS_GUID ' // media pool that the media belongs to

    Public Location As NTMS_GUID ' // actual location of the media

    Public LocationType As Int32

    Public MediaType As NTMS_GUID

    Public HomeSlot As NTMS_GUID ' // home slot for online media

    Public szBarCode(NTMS_ BARCODE_LENGTH) As Byte ' // bar code string

    Public BarCodeState As Int32 ' // current state of the bar code

    Public szSequenceNumbe r(NTMS_SEQUENCE _LENGTH) As Byte

    Public MediaState As Int32 ' // current media state

    Public dwNumberOfParti tions As Int32

    End Structure

    can you help converting this struct ,please.!

    typedef struct _NTMS_OBJECTINF ORMATIONW {

    DWORD dwSize;

    DWORD dwType;

    SYSTEMTIME Created;

    SYSTEMTIME Modified;

    NTMS_GUID ObjectGuid;

    BOOL Enabled;

    DWORD dwOperationalSt ate;

    WCHAR szName[NTMS_OBJECTNAME _LENGTH];

    WCHAR szDescription[NTMS_DESCRIPTIO N_LENGTH];

    #ifdef MIDL_PASS

    [switch_is(dwTyp e)] union {

    [case(NTMS_DRIVE )] NTMS_DRIVEINFOR MATIONW Drive;

    [case(NTMS_DRIVE _TYPE)] NTMS_DRIVETYPEI NFORMATIONW DriveType;

    [case(NTMS_LIBRA RY)] NTMS_LIBRARYINF ORMATION Library;

    [case(NTMS_CHANG ER)] NTMS_CHANGERINF ORMATIONW Changer;

    [case(NTMS_CHANG ER_TYPE)] NTMS_CHANGERTYP EINFORMATIONW ChangerType;

    [case(NTMS_STORA GESLOT)] NTMS_STORAGESLO TINFORMATION StorageSlot;

    [case(NTMS_IEDOO R)] NTMS_IEDOORINFO RMATION IEDoor;

    [case(NTMS_IEPOR T)] NTMS_IEPORTINFO RMATION IEPort;

    [case(NTMS_PHYSI CAL_MEDIA)] NTMS_PMIDINFORM ATIONW PhysicalMedia;

    [case(NTMS_LOGIC AL_MEDIA)] NTMS_LMIDINFORM ATION LogicalMedia;

    [case(NTMS_PARTI TION)] NTMS_PARTITIONI NFORMATIONW Partition;

    [case(NTMS_MEDIA _POOL)] NTMS_MEDIAPOOLI NFORMATION MediaPool;

    [case(NTMS_MEDIA _TYPE)] NTMS_MEDIATYPEI NFORMATION MediaType;

    [case(NTMS_LIBRE QUEST)] NTMS_LIBREQUEST INFORMATIONW LibRequest;

    [case(NTMS_OPREQ UEST)] NTMS_OPREQUESTI NFORMATIONW OpRequest;

    [case(NTMS_COMPU TER)] NTMS_COMPUTERIN FORMATION Computer;

    [default] ;

    } Info;

    #else

    union {

    NTMS_DRIVEINFOR MATIONW Drive;

    NTMS_DRIVETYPEI NFORMATIONW DriveType;

    NTMS_LIBRARYINF ORMATION Library;

    NTMS_CHANGERINF ORMATIONW Changer;

    NTMS_CHANGERTYP EINFORMATIONW ChangerType;

    NTMS_STORAGESLO TINFORMATION StorageSlot;

    NTMS_IEDOORINFO RMATION IEDoor;

    NTMS_IEPORTINFO RMATION IEPort;

    NTMS_PMIDINFORM ATIONW PhysicalMedia;

    NTMS_LMIDINFORM ATION LogicalMedia;

    NTMS_PARTITIONI NFORMATIONW Partition;

    NTMS_MEDIAPOOLI NFORMATION MediaPool;

    NTMS_MEDIATYPEI NFORMATION MediaType;

    NTMS_LIBREQUEST INFORMATIONW LibRequest;

    NTMS_OPREQUESTI NFORMATIONW OpRequest;

    NTMS_COMPUTERIN FORMATION Computer;

    } Info;

    #endif // MIDL_PASS

    } NTMS_OBJECTINFO RMATIONW, *LPNTMS_OBJECTI NFORMATIONW;


    Comment

    Working...