Package pygccxml :: Package msvc :: Package bsc :: Module c_wrapper

# Source Code for Module pygccxml.msvc.bsc.c_wrapper

      1  import os
      2  import sys
      3  import ctypes
      4  import logging
      5
      6  from ctypes import *
      7  from ctypes.wintypes import ULONG
      8  from ctypes.wintypes import DWORD
      9  from ctypes.wintypes import BOOL
     10  from ctypes.wintypes import BYTE
     11  from ctypes.wintypes import WORD
     12  from ctypes.wintypes import UINT
     13
     14  from .. import config as msvc_cfg
     15  from ... import utils #import utils from pygccxml package
     16
     17  STRING = c_char_p
     18  _libraries = {}
     19  _libraries['msvcr70.dll'] = CDLL(msvc_cfg.msvcr_path, mode=RTLD_GLOBAL)
     20  _libraries['msbsc70.dll'] = CDLL(msvc_cfg.msbsc_path, mode=RTLD_GLOBAL)
     21
     22
     23  qyMac = 9
     24  refreshAllOp = 4
     25  qyDervOf = 7
     26  delOp = 1
     27  qyImpMembers = 8
     28  changeOp = 2
     29  qyRefs = 4
     30  qyCalls = 2
     31  changeIinstOp = 3
     32  qyContains = 1
     33  qyCalledBy = 3
     34  noOp = 5
     35  qyBaseOf = 6
     36  qyNil = 0
     37  addOp = 0
     38  qyDefs = 5
     39  PULONG = POINTER(ULONG)
     40  USHORT = c_ushort
     41  PUSHORT = POINTER(USHORT)
     42  UCHAR = c_ubyte
     43  PUCHAR = POINTER(UCHAR)
     44  PSZ = STRING
     45  FLOAT = c_float
     46  PFLOAT = POINTER(FLOAT)
     47  PBOOL = POINTER(BOOL)
     48  LPBOOL = POINTER(BOOL)
     49  PBYTE = POINTER(BYTE)
     50  LPBYTE = POINTER(BYTE)
     51  PINT = POINTER(c_int)
     52  LPINT = POINTER(c_int)
     53  PWORD = POINTER(WORD)
     54  LPWORD = POINTER(WORD)
     55  LPLONG = POINTER(c_long)
     56  PDWORD = POINTER(DWORD)
     57  LPDWORD = POINTER(DWORD)
     58  LPVOID = c_void_p
     59  LPCVOID = c_void_p
     60  INT = c_int
     61  PUINT = POINTER(c_uint)
     62  ULONG_PTR = POINTER(ULONG)
     63  NI = ULONG
     64  IINST = ULONG
     65  IREF = ULONG
     66  IDEF = ULONG
     67  IMOD = USHORT
     68  LINE = USHORT
     69  TYP = BYTE
     70  ATR = USHORT
     71  ATR32 = ULONG
     72  MBF = ULONG
     73  SZ = STRING
     74  SZ_CONST = STRING
     75
     76 -class Bsc(Structure):
     77      pass
     78
     79  # values for enumeration 'OPERATION'
     80  OPERATION = c_int # enum
     81 -class IinstInfo(Structure):
     82      pass
     83  IinstInfo._fields_ = [
     84      ('m_iinst', IINST),
     85      ('m_szName', SZ_CONST),
     86      ('m_ni', NI),
     87  ]
     88 -class BSC_STAT(Structure):
     89      pass
     90  BSC_STAT._fields_ = [
     91      ('cDef', ULONG),
     92      ('cRef', ULONG),
     93      ('cInst', ULONG),
     94      ('cMod', ULONG),
     95      ('cUseLink', ULONG),
     96      ('cBaseLink', ULONG),
     97  ]
     98 -class NiQ(Structure):
     99      pass
    100  NiQ._fields_ = [
    101      ('m_iinstOld', IINST),
    102      ('m_iInfoNew', IinstInfo),
    103      ('m_op', OPERATION),
    104      ('m_typ', TYP),
    105  ]
    106  pfnNotifyChange = CFUNCTYPE(BOOL, POINTER(NiQ), ULONG, ULONG_PTR)
    107
    108  # values for enumeration '_qy_'
    109  _qy_ = c_int # enum
    110  QY = _qy_
    111  Bsc._fields_ = [
    112  ]
    113  BSCOpen = _libraries['msbsc70.dll'].BSCOpen
    114  BSCOpen.restype = BOOL
    115  BSCOpen.argtypes = [SZ_CONST, POINTER(POINTER(Bsc))]
    116  BSCClose = _libraries['msbsc70.dll'].BSCClose
    117  BSCClose.restype = BOOL
    118  BSCClose.argtypes = [POINTER(Bsc)]
    119  BSCIinstInfo = _libraries['msbsc70.dll'].BSCIinstInfo
    120  BSCIinstInfo.restype = BOOL
    121  BSCIinstInfo.argtypes = [POINTER(Bsc), IINST, POINTER(SZ), POINTER(TYP), POINTER(ATR)]
    122  BSCIrefInfo = _libraries['msbsc70.dll'].BSCIrefInfo
    123  BSCIrefInfo.restype = BOOL
    124  BSCIrefInfo.argtypes = [POINTER(Bsc), IREF, POINTER(SZ), POINTER(LINE)]
    125  BSCIdefInfo = _libraries['msbsc70.dll'].BSCIdefInfo
    126  BSCIdefInfo.restype = BOOL
    127  BSCIdefInfo.argtypes = [POINTER(Bsc), IDEF, POINTER(SZ), POINTER(LINE)]
    128  BSCImodInfo = _libraries['msbsc70.dll'].BSCImodInfo
    129  BSCImodInfo.restype = BOOL
    130  BSCImodInfo.argtypes = [POINTER(Bsc), IMOD, POINTER(SZ)]
    131  BSCSzFrTyp = _libraries['msbsc70.dll'].BSCSzFrTyp
    132  BSCSzFrTyp.restype = SZ
    133  BSCSzFrTyp.argtypes = [POINTER(Bsc), TYP]
    134  BSCSzFrAtr = _libraries['msbsc70.dll'].BSCSzFrAtr
    135  BSCSzFrAtr.restype = SZ
    136  BSCSzFrAtr.argtypes = [POINTER(Bsc), ATR]
    137  BSCGetIinstByvalue = _libraries['msbsc70.dll'].BSCGetIinstByvalue
    138  BSCGetIinstByvalue.restype = BOOL
    139  BSCGetIinstByvalue.argtypes = [POINTER(Bsc), SZ, TYP, ATR, POINTER(IINST)]
    140  BSCGetOverloadArray = _libraries['msbsc70.dll'].BSCGetOverloadArray
    141  BSCGetOverloadArray.restype = BOOL
    142  BSCGetOverloadArray.argtypes = [POINTER(Bsc), SZ, MBF, POINTER(POINTER(IINST)), POINTER(ULONG)]
    143  BSCGetUsedByArray = _libraries['msbsc70.dll'].BSCGetUsedByArray
    144  BSCGetUsedByArray.restype = BOOL
    145  BSCGetUsedByArray.argtypes = [POINTER(Bsc), IINST, MBF, POINTER(POINTER(IINST)), POINTER(ULONG)]
    146  BSCGetUsesArray = _libraries['msbsc70.dll'].BSCGetUsesArray
    147  BSCGetUsesArray.restype = BOOL
    148  BSCGetUsesArray.argtypes = [POINTER(Bsc), IINST, MBF, POINTER(POINTER(IINST)), POINTER(ULONG)]
    149  BSCGetBaseArray = _libraries['msbsc70.dll'].BSCGetBaseArray
    150  BSCGetBaseArray.restype = BOOL
    151  BSCGetBaseArray.argtypes = [POINTER(Bsc), IINST, POINTER(POINTER(IINST)), POINTER(ULONG)]
    152  BSCGetDervArray = _libraries['msbsc70.dll'].BSCGetDervArray
    153  BSCGetDervArray.restype = BOOL
    154  BSCGetDervArray.argtypes = [POINTER(Bsc), IINST, POINTER(POINTER(IINST)), POINTER(ULONG)]
    155  BSCGetMembersArray = _libraries['msbsc70.dll'].BSCGetMembersArray
    156  BSCGetMembersArray.restype = BOOL
    157  BSCGetMembersArray.argtypes = [POINTER(Bsc), IINST, MBF, POINTER(POINTER(IINST)), POINTER(ULONG)]
    158  BSCGetDefArray = _libraries['msbsc70.dll'].BSCGetDefArray
    159  BSCGetDefArray.restype = BOOL
    160  BSCGetDefArray.argtypes = [POINTER(Bsc), IINST, POINTER(POINTER(IREF)), POINTER(ULONG)]
    161  BSCGetRefArray = _libraries['msbsc70.dll'].BSCGetRefArray
    162  BSCGetRefArray.restype = BOOL
    163  BSCGetRefArray.argtypes = [POINTER(Bsc), IINST, POINTER(POINTER(IREF)), POINTER(ULONG)]
    164  BSCGetModuleContents = _libraries['msbsc70.dll'].BSCGetModuleContents
    165  BSCGetModuleContents.restype = BOOL
    166  BSCGetModuleContents.argtypes = [POINTER(Bsc), IMOD, MBF, POINTER(POINTER(IINST)), POINTER(ULONG)]
    167  BSCGetModuleByName = _libraries['msbsc70.dll'].BSCGetModuleByName
    168  BSCGetModuleByName.restype = BOOL
    169  BSCGetModuleByName.argtypes = [POINTER(Bsc), SZ, POINTER(IMOD)]
    170  BSCGetAllModulesArray = _libraries['msbsc70.dll'].BSCGetAllModulesArray
    171  BSCGetAllModulesArray.restype = BOOL
    172  BSCGetAllModulesArray.argtypes = [POINTER(Bsc), POINTER(POINTER(IMOD)), POINTER(ULONG)]
    173  BSCDisposeArray = _libraries['msbsc70.dll'].BSCDisposeArray
    174  BSCDisposeArray.restype = None
    175  BSCDisposeArray.argtypes = [POINTER(Bsc), c_void_p]
    176  BSCFormatDname = _libraries['msbsc70.dll'].BSCFormatDname
    177  BSCFormatDname.restype = SZ
    178  BSCFormatDname.argtypes = [POINTER(Bsc), SZ]
    179  BSCFInstFilter = _libraries['msbsc70.dll'].BSCFInstFilter
    180  BSCFInstFilter.restype = BOOL
    181  BSCFInstFilter.argtypes = [POINTER(Bsc), IINST, MBF]
    182  BSCIinstFrIref = _libraries['msbsc70.dll'].BSCIinstFrIref
    183  BSCIinstFrIref.restype = IINST
    184  BSCIinstFrIref.argtypes = [POINTER(Bsc), IREF]
    185  BSCIinstFrIdef = _libraries['msbsc70.dll'].BSCIinstFrIdef
    186  BSCIinstFrIdef.restype = IINST
    187  BSCIinstFrIdef.argtypes = [POINTER(Bsc), IDEF]
    188  BSCIinstContextIref = _libraries['msbsc70.dll'].BSCIinstContextIref
    189  BSCIinstContextIref.restype = IINST
    190  BSCIinstContextIref.argtypes = [POINTER(Bsc), IREF]
    191  BSCGetStatistics = _libraries['msbsc70.dll'].BSCGetStatistics
    192  BSCGetStatistics.restype = BOOL
    193  BSCGetStatistics.argtypes = [POINTER(Bsc), POINTER(BSC_STAT)]
    194  BSCGetModuleStatistics = _libraries['msbsc70.dll'].BSCGetModuleStatistics
    195  BSCGetModuleStatistics.restype = BOOL
    196  BSCGetModuleStatistics.argtypes = [POINTER(Bsc), IMOD, POINTER(BSC_STAT)]
    197  BSCFCaseSensitive = _libraries['msbsc70.dll'].BSCFCaseSensitive
    198  BSCFCaseSensitive.restype = BOOL
    199  BSCFCaseSensitive.argtypes = [POINTER(Bsc)]
    200  BSCSetCaseSensitivity = _libraries['msbsc70.dll'].BSCSetCaseSensitivity
    201  BSCSetCaseSensitivity.restype = BOOL
    202  BSCSetCaseSensitivity.argtypes = [POINTER(Bsc), BOOL]
    203  BSCGetAllGlobalsArray = _libraries['msbsc70.dll'].BSCGetAllGlobalsArray
    204  BSCGetAllGlobalsArray.restype = BOOL
    205  BSCGetAllGlobalsArray.argtypes = [POINTER(Bsc), MBF, POINTER(POINTER(IINST)), POINTER(ULONG)]
    206  BSCSzFrAtr2 = _libraries['msbsc70.dll'].BSCSzFrAtr2
    207  BSCSzFrAtr2.restype = SZ
    208  BSCSzFrAtr2.argtypes = [POINTER(Bsc), ATR32]
    209  BSCIinstInfo2 = _libraries['msbsc70.dll'].BSCIinstInfo2
    210  BSCIinstInfo2.restype = BOOL
    211  BSCIinstInfo2.argtypes = [POINTER(Bsc), IINST, POINTER(SZ), POINTER(TYP), POINTER(ATR32)]
    212  BSCGetIinstByvalue2 = _libraries['msbsc70.dll'].BSCGetIinstByvalue2
    213  BSCGetIinstByvalue2.restype = BOOL
    214  BSCGetIinstByvalue2.argtypes = [POINTER(Bsc), SZ, TYP, ATR32, POINTER(IINST)]
    215  OpenBSCQuery = _libraries['msbsc70.dll'].OpenBSCQuery
    216  OpenBSCQuery.restype = BOOL
    217  OpenBSCQuery.argtypes = [POINTER(Bsc)]
    218  CloseBSCQuery = _libraries['msbsc70.dll'].CloseBSCQuery
    219  CloseBSCQuery.restype = BOOL
    220  CloseBSCQuery.argtypes = []
    221  BOB = ULONG
    222  InitBSCQuery = _libraries['msbsc70.dll'].InitBSCQuery
    223  InitBSCQuery.restype = BOOL
    224  InitBSCQuery.argtypes = [QY, BOB]
    225  BobNext = _libraries['msbsc70.dll'].BobNext
    226  BobNext.restype = BOB
    227  BobNext.argtypes = []
    228  BobFrName = _libraries['msbsc70.dll'].BobFrName
    229  BobFrName.restype = BOB
    230  BobFrName.argtypes = [SZ]
    231  LszNameFrBob = _libraries['msbsc70.dll'].LszNameFrBob
    232  LszNameFrBob.restype = SZ
    233  LszNameFrBob.argtypes = [BOB]
    234  CLS = USHORT
    235
    236 -class enums:
    237 -    class MBF(utils.enum):
    238          NIL       = 0x000
    239          VARS      = 0x001
    240          FUNCS     = 0x002
    241          MACROS    = 0x004
    242          TYPES     = 0x008
    243          CLASS     = 0x010
    244          INCL      = 0x020
    245          MSGMAP    = 0x040
    246          DIALOGID  = 0x080
    247          LIBRARY   = 0x100
    248          IMPORT    = 0x200
    249          TEMPLATE  = 0x400
    250          NAMESPACE = 0x800
    251          ALL       = 0xFFF
    252
    253 -    class TYPES(utils.enum):
    254          FUNCTION  = 0x01
    255          LABEL     = 0x02
    256          PARAMETER = 0x03
    257          VARIABLE  = 0x04
    258          CONSTANT  = 0x05
    259          MACRO     = 0x06
    260          TYPEDEF   = 0x07
    261          STRUCNAM  = 0x08
    262          ENUMNAM   = 0x09
    263          ENUMMEM   = 0x0A
    264          UNIONNAM  = 0x0B
    265          SEGMENT   = 0x0C
    266          GROUP     = 0x0D
    267          PROGRAM   = 0x0E
    268          CLASSNAM  = 0x0F
    269          MEMFUNC   = 0x10
    270          MEMVAR    = 0x11
    271
    272 -    class ATTRIBUTES(utils.enum):
    273          LOCAL     = 0x001
    274          STATIC    = 0x002
    275          SHARED    = 0x004
    276          NEAR      = 0x008
    277          COMMON    = 0x010
    278          DECL_ONLY = 0x020
    279          PUBLIC    = 0x040
    280          NAMED     = 0x080
    281          MODULE    = 0x100
    282          VIRTUAL   = 0x200
    283          PRIVATE   = 0x400
    284          PROTECT   = 0x800
    285