Adopt COM-Server Wrapper from Python to Julia

I was mostly curious to know more about this project, so I googled, and I suppose it could be done (but I will not), since I think everything you can to in Python (at least on Windows) can be done in Julia. I see most of the project is in C++ (but I don’t think that changes things), assuming it that first one:

I do see the makepy.py file itself is rather small (at 455 lines): https://github.com/mhammond/pywin32/blob/main/com/win32com/client/makepy.py

it’s a generator, so possibly it’s easiest to change that file (and keep it in Python would then be ok) to rather generate Julia code. Since the generated code, is now, in Python, there might be lots more you need to translate, or not, just use PyCall.jl, or maybe rather by now PythonCall.jl? I.e. generate Julia code that uses Python libraries, and thus Python also, was that what you wanted?

There are two main types of servers, in-process and out-of-process. In-process servers are implemented in a dynamic linked library (DLL), and out-of-process servers are implemented in an executable file (EXE). Out-of-process servers can reside either on the local computer or on a remote computer.

Before I comment on that, I think you’re not asking to make a Julia COM server (that answer would be a bit involved), just a client for it, which the code should generate for you.

I haven’t seen much Windows-specific Julia code. Julia itself is cross-platform, most to not call the Win32 API directly (I’ve however seen a project for doing that, of course then tying you to Windows, or Wine e.g. under Linux), such as for a Windows GUI. [I’ve not seen anything for COM yet in Julia. EDIT: found your post below:

Personally I would like most to use cross-platform libraries such as Qt or GTK, also supporting Windows, or whatever is a COM replacement, if there is anything such (is there, or only a Linux replacement, but no abstraction targeting that or Windows?). If you need/want COM, I guess you do, but I’m curious, can you tell me what for?

It might be nice to know the real (business) problem you want solved. Maybe there’s another way, and this is an XY problem.

Before finding what I believe is the right code (please confirm), I also found:

there the code is only 390 lines (if someone want to start translating, I guess a slightly older version): https://github.com/SublimeText/Pywin32/blob/master/lib/x32/win32com/client/makepy.py