Help, I am a begginer of pythonwin32

jnut member29732 at dbforums.com
Thu May 15 22:32:12 EDT 2003


I made a python class. And test it ok.
And build it to a com.
In asp file (com.asp):
<%
        set dObj = CreateObject("ImageServer.Application")
        dObj.resizeTo"C:\Inetpub\wwwroot\a.jpg","C:\Inetpub\wwwroot\-
        2.jpg",100
        set dObj = nothing
%>

It's alway turn out a error:
        Python COM Server Internal Error (0x80004005)
        /com.asp, line: 3

1. How can I know the error line and what error that is?
2. Did you have a way to reload your python com? I mean , After I have
   some changes done, re-register the python file, I can not see any
   effect when I refresh the ie. . Maybe a few minutes later , or
   restart my windows, it worked.
I can not find any document of that. And there is no any help or
documation of pythonwin32 or pythoncom in china.

Thank you all.


#file ImageServer.application
import Image
class ImageServer:
        _public_methods_ = ['resizeTo']
        _public_attrs_   = ['img']
        _reg_progid_ = "ImageServer.Application"
        _reg_clsid_ = "{159D620A-0EFE-446A-8BD3-6D706F0003AD}"

        def __init__(self):
                self.img = None
                self.nSize = [None,None]
                self.Type = ""

        def resizeTo(self,sp,dp,mx):
                self.img  = Image.open(sp)
                self.Type = self.img.tile[0][0] # maybe img.format
                self.resize(self.img.size,mx)
                self.img.resize(self.nSize).save(dp, self.Type)
                return self.img

        def resize(self,size,mx):
                if size[0]>=size[1]:
                        self.nSize[0] = mx
                        self.nSize[1] = mx*size[1]/size[0]
                else:
                        self.nSize[0] = mx*size[0]/size[1]
                        self.nSize[1] = mx

# Change To UnregisterClasses(YOUR_COM_CLASS_NAME)
# Change To UseCommandLine(YOUR_COM_CLASS_NAME)

if __name__ == '__main__':
        import win32com.server.register,sys
        if "-unregister" in sys.argv:
                print "UNRegistering COM Server"
                win32com.server.register.UnregisterClasses(ImageServer)
        else:
                print "Registering COM Server"
                win32com.server.register.UseCommandLine(ImageServer)

--
Posted via http://dbforums.com




More information about the Python-list mailing list