diff -r 509e4801c378 -r 22878952f6e2 srcanamdw/codescanner/pyinstaller/e2etests/win32/NextID.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/srcanamdw/codescanner/pyinstaller/e2etests/win32/NextID.py Thu Feb 18 12:29:02 2010 +0530 @@ -0,0 +1,79 @@ +# Copyright (C) 2005, Giovanni Bajo +# Based on previous work under copyright (c) 1999, 2002 McMillan Enterprises, Inc. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + +#import pythoncom +pycomCLSCTX_INPROC = 3 +pycomCLSCTX_LOCAL_SERVER = 4 +import os +d = {} + +class NextID: + _reg_clsid_ = '{25E06E61-2D18-11D5-945F-00609736B700}' + _reg_desc_ = 'Text COM server' + _reg_progid_ = 'MEInc.NextID' + _reg_clsctx_ = pycomCLSCTX_INPROC | pycomCLSCTX_LOCAL_SERVER + _public_methods_ = [ + 'getNextID' + ] + def __init__(self): + import win32api + win32api.MessageBox(0, "NextID.__init__ started", "NextID.py") + global d + if sys.frozen: + for entry in sys.path: + if entry.find('?') > -1: + here = os.path.dirname(entry.split('?')[0]) + break + else: + here = os.getcwd() + else: + here = os.path.dirname(__file__) + self.fnm = os.path.join(here, 'id.cfg') + try: + d = eval(open(self.fnm, 'r').read()+'\n') + except: + d = { + 'systemID': 0xaaaab, + 'highID': 0 + } + win32api.MessageBox(0, "NextID.__init__ complete", "NextID.py") + def getNextID(self): + global d + d['highID'] = d['highID'] + 1 + open(self.fnm, 'w').write(repr(d)) + return '%(systemID)-0.5x%(highID)-0.7x' % d + +def RegisterNextID(): + from win32com.server import register + register.UseCommandLine(NextID) + +def UnRegisterNextID(): + from win32com.server import register + register.UnregisterServer(NextID._reg_clsid_, NextID._reg_progid_) + +if __name__ == '__main__': + import sys + if "/unreg" in sys.argv: + UnRegisterNextID() + elif "/register" in sys.argv: + RegisterNextID() + else: + print "running as server" + import win32com.server.localserver + win32com.server.localserver.main() + raw_input("Press any key...") +