Hi ladies/gentlemen,

What I do now is based on Motorola Scan Bar Code SDK to do some development.

SDK is COM thing. there are API Commands and API Events as they called.

 

API Commands’ development is finished. But Events no, I tried, but failed.
Could u give some help ~ ~.

Thank you.

<CODE>

from pythoncom import *

from win32com.client import *

drv = win32com.client.Dispatch("CoreScanner.CoreScanner",clsctx =
CLSCTX_ALL)

Then I can use the method/attribute, such as Open, Close and so on. Goooood.

 

class LocalScanEvent:

    def OnBarcodeEvent(self, eventType=0, pscanData=pythoncom.Empty):

        print "@@@@@@@@@@@@"

 

evt = = DispatchWithEvents("CoreScanner.CoreScanner", LocalScanEvent)

Now prblem appears. I can’t get the LocalScanEvent work. When I debug the
dispatch, it always go to BASECLASS.

How could I do? Please help out. Thank you.

 

P.S. BASECLASS �C it is shows in attachment,” class
ICoreScanner(DispatchBaseClass):” .

 

Best regards,

 

XU Zhongjin

Electronic & Software Engineer 

Electronic & Control Department DERI CHERY

No.8 Changchun Rd E&T Development Zone Wuhu Anhui China 241006

+86+553+5925245

+86+13355530465

 

# -*- coding: mbcs -*-
# Created by makepy.py version 0.5.00
# By python version 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 
bit (Intel)]
# From type library 'CoreScanner.exe'
# On Thu Oct 18 14:21:42 2012
"""CoreScanner 1.0 Type Library"""
makepy_version = '0.5.00'
python_version = 0x20504f0

import win32com.client.CLSIDToClass, pythoncom, pywintypes
import win32com.client.util
from pywintypes import IID
from win32com.client import Dispatch

# The following 3 lines may need tweaking for the particular server
# Candidates are pythoncom.Missing, .Empty and .ArgNotFound
defaultNamedOptArg=pythoncom.Empty
defaultNamedNotOptArg=pythoncom.Empty
defaultUnnamedArg=pythoncom.Empty

CLSID = IID('{DB07B9FC-18B0-4B55-9A44-31D2C2F87875}')
MajorVersion = 1
MinorVersion = 0
LibraryFlags = 8
LCID = 0x0

from win32com.client import DispatchBaseClass
class ICoreScanner(DispatchBaseClass):
        """ICoreScanner Interface"""
        CLSID = IID('{2105896C-2B38-4031-BD0B-7A9C4A39FB93}')
        coclass_clsid = IID('{9F8D4F16-0F61-4A38-98B3-1F6F80F11C87}')

        def Close(self, appHandle=defaultNamedNotOptArg, 
status=pythoncom.Missing):
                """method Close"""
                return self._ApplyTypes_(2, 1, (24, 0), ((3, 1), (16387, 2)), 
u'Close', None,appHandle
                        , status)

        def ExecCommand(self, opcode=defaultNamedNotOptArg, 
inXML=defaultNamedNotOptArg, outXML=pythoncom.Missing, 
status=pythoncom.Missing):
                """method ExecCommand"""
                return self._ApplyTypes_(4, 1, (24, 0), ((3, 1), (16392, 1), 
(16392, 2), (16387, 2)), u'ExecCommand', None,opcode
                        , inXML, outXML, status)

        def ExecCommandAsync(self, opcode=defaultNamedNotOptArg, 
inXML=defaultNamedNotOptArg, status=pythoncom.Missing):
                """method ExecCommandAsync"""
                return self._ApplyTypes_(5, 1, (24, 0), ((3, 1), (16392, 1), 
(16387, 2)), u'ExecCommandAsync', None,opcode
                        , inXML, status)

        def GetScanners(self, numberOfScanners=pythoncom.Missing, 
sfScannerIDList=defaultNamedNotOptArg, outXML=pythoncom.Missing, 
status=pythoncom.Missing):
                """method GetScanners"""
                return self._ApplyTypes_(3, 1, (24, 0), ((16386, 2), (8195, 3), 
(16392, 2), (16387, 2)), u'GetScanners', None,numberOfScanners
                        , sfScannerIDList, outXML, status)

        def Open(self, appHandle=defaultNamedNotOptArg, 
sfTypes=defaultNamedNotOptArg, lengthOfTypes=defaultNamedNotOptArg, 
status=pythoncom.Missing):
                """method Open"""
                return self._ApplyTypes_(1, 1, (24, 0), ((3, 1), (8194, 1), (2, 
1), (16387, 2)), u'Open', None,appHandle
                        , sfTypes, lengthOfTypes, status)

        _prop_map_get_ = {
        }
        _prop_map_put_ = {
        }

class _ICoreScannerEvents:
        """_ICoreScannerEvents Interface"""
        CLSID = CLSID_Sink = IID('{981E3D8B-C756-4195-A702-F198965031C6}')
        coclass_clsid = IID('{9F8D4F16-0F61-4A38-98B3-1F6F80F11C87}')
        _public_methods_ = [] # For COM Server support
        _dispid_to_func_ = {
                        6 : "OnScanRMDEvent",
                        4 : "OnPNPEvent",
                        2 : "OnVideoEvent",
                        8 : "OnScannerNotificationEvent",
                        1 : "OnImageEvent",
                        3 : "OnBarcodeEvent",
                        7 : "OnIOEvent",
                        5 : "OnCommandResponseEvent",
                }

        def __init__(self, oobj = None):
                if oobj is None:
                        self._olecp = None
                else:
                        import win32com.server.util
                        from win32com.server.policy import EventHandlerPolicy
                        
cpc=oobj._oleobj_.QueryInterface(pythoncom.IID_IConnectionPointContainer)
                        cp=cpc.FindConnectionPoint(self.CLSID_Sink)
                        cookie=cp.Advise(win32com.server.util.wrap(self, 
usePolicy=EventHandlerPolicy))
                        self._olecp,self._olecp_cookie = cp,cookie
        def __del__(self):
                try:
                        self.close()
                except pythoncom.com_error:
                        pass
        def close(self):
                if self._olecp is not None:
                        cp,cookie,self._olecp,self._olecp_cookie = 
self._olecp,self._olecp_cookie,None,None
                        cp.Unadvise(cookie)
        def _query_interface_(self, iid):
                import win32com.server.util
                if iid==self.CLSID_Sink: return win32com.server.util.wrap(self)

        # Event Handlers
        # If you create handlers, they should have the following prototypes:
#       def OnScanRMDEvent(self, eventType=defaultNamedNotOptArg, 
prmdData=defaultNamedNotOptArg):
#               """method ScanRMDEvent"""
#       def OnPNPEvent(self, eventType=defaultNamedNotOptArg, 
ppnpData=defaultNamedNotOptArg):
#               """method PNPEvent"""
#       def OnVideoEvent(self, eventType=defaultNamedNotOptArg, 
size=defaultNamedNotOptArg, sfvideoData=defaultNamedNotOptArg, 
pScannerData=defaultNamedNotOptArg):
#               """method VideoEvent"""
#       def OnScannerNotificationEvent(self, 
notificationType=defaultNamedNotOptArg, pScannerData=defaultNamedNotOptArg):
#               """method ScannerNotificationEvent"""
#       def OnImageEvent(self, eventType=defaultNamedNotOptArg, 
size=defaultNamedNotOptArg, imageFormat=defaultNamedNotOptArg, 
sfImageData=defaultNamedNotOptArg
#                       , pScannerData=defaultNamedNotOptArg):
#               """method ImageEvent"""
#       def OnBarcodeEvent(self, eventType=defaultNamedNotOptArg, 
pscanData=defaultNamedNotOptArg):
#               """method BarcodeEvent"""
#       def OnIOEvent(self, type=defaultNamedNotOptArg, 
data=defaultNamedNotOptArg):
#               """method IOEvent"""
#       def OnCommandResponseEvent(self, status=defaultNamedNotOptArg, 
prspData=defaultNamedNotOptArg):
#               """method CommandResponseEvent"""


from win32com.client import CoClassBaseClass
# This CoClass is known by the name 'CoreScanner.CoreScanner.1'
class CCoreScanner(CoClassBaseClass): # A CoClass
        # CCoreScanner Class
        CLSID = IID('{9F8D4F16-0F61-4A38-98B3-1F6F80F11C87}')
        coclass_sources = [
                _ICoreScannerEvents,
        ]
        default_source = _ICoreScannerEvents
        coclass_interfaces = [
                ICoreScanner,
        ]
        default_interface = ICoreScanner

ICoreScanner_vtables_dispatch_ = 1
ICoreScanner_vtables_ = [
        (( u'Open' , u'appHandle' , u'sfTypes' , u'lengthOfTypes' , u'status' , 
                        ), 1, (1, (), [ (3, 1, None, None) , (8194, 1, None, 
None) , (2, 1, None, None) , (16387, 2, None, None) , ], 1 , 1 , 4 , 0 , 28 , 
(3, 0, None, None) , 0 , )),
        (( u'Close' , u'appHandle' , u'status' , ), 2, (2, (), [ (3, 1, None, 
None) , 
                        (16387, 2, None, None) , ], 1 , 1 , 4 , 0 , 32 , (3, 0, 
None, None) , 0 , )),
        (( u'GetScanners' , u'numberOfScanners' , u'sfScannerIDList' , 
u'outXML' , u'status' , 
                        ), 3, (3, (), [ (16386, 2, None, None) , (8195, 3, 
None, None) , (16392, 2, None, None) , (16387, 2, None, None) , ], 1 , 1 , 4 , 
0 , 36 , (3, 0, None, None) , 0 , )),
        (( u'ExecCommand' , u'opcode' , u'inXML' , u'outXML' , u'status' , 
                        ), 4, (4, (), [ (3, 1, None, None) , (16392, 1, None, 
None) , (16392, 2, None, None) , (16387, 2, None, None) , ], 1 , 1 , 4 , 0 , 40 
, (3, 0, None, None) , 0 , )),
        (( u'ExecCommandAsync' , u'opcode' , u'inXML' , u'status' , ), 5, (5, 
(), [ 
                        (3, 1, None, None) , (16392, 1, None, None) , (16387, 
2, None, None) , ], 1 , 1 , 4 , 0 , 44 , (3, 0, None, None) , 0 , )),
]

RecordMap = {
}

CLSIDToClassMap = {
        '{2105896C-2B38-4031-BD0B-7A9C4A39FB93}' : ICoreScanner,
        '{981E3D8B-C756-4195-A702-F198965031C6}' : _ICoreScannerEvents,
        '{9F8D4F16-0F61-4A38-98B3-1F6F80F11C87}' : CCoreScanner,
}
CLSIDToPackageMap = {}
win32com.client.CLSIDToClass.RegisterCLSIDsFromDict( CLSIDToClassMap )
VTablesToPackageMap = {}
VTablesToClassMap = {
        '{2105896C-2B38-4031-BD0B-7A9C4A39FB93}' : 'ICoreScanner',
}


NamesToIIDMap = {
        '_ICoreScannerEvents' : '{981E3D8B-C756-4195-A702-F198965031C6}',
        'ICoreScanner' : '{2105896C-2B38-4031-BD0B-7A9C4A39FB93}',
}


_______________________________________________
python-win32 mailing list
python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to