Antonio Linares wrote:Los asistentes al curso recibirán la versión más actual de FWH 32 ó 64 bits
Antonio Linares wrote:Los asistentes al curso recibirán la versión más actual de FWH 32 ó 64 bits
paquitohm wrote:Una propuesta:
Dada la sencillez y proliferación de rutinas para todo en Python.
¿ Qué tal si en el curso se nos enseñara a como crear controles OLE para enlazar harbour con python ? Tambien archivos .exe en python, a poder ser de poco tamaño.
'''
pip install pywin32
'''
import win32com.server.register
from win32com.server.exception import COMException
class SimplePythonObject:
_reg_clsid_ = "{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}" # Genera un GUID único
_reg_progid_ = "SimplePython.Object"
_reg_desc_ = "Simple Python Object for OLE"
def __init__(self):
self.data = "Hola desde Python"
def GetData(self):
return self.data
def SetData(self, new_data):
self.data = new_data
return "Datos actualizados"
def ProcessData(self):
return f"Procesando: {self.data}"
if __name__ == "__main__":
print("Registrando objeto COM...")
win32com.server.register.UseCommandLine(SimplePythonObject)
#include <windows.h>
#include <ole2.h>
#include <stdio.h>
int main() {
CoInitialize(NULL);
IDispatch* pDispatch = NULL;
CLSID clsid;
// Obtener CLSID del objeto Python
CLSIDFromProgID(L"SimplePython.Object", &clsid);
// Crear una instancia del objeto
HRESULT hr = CoCreateInstance(&clsid, NULL, CLSCTX_INPROC_SERVER,
&IID_IDispatch, (void**)&pDispatch);
if (SUCCEEDED(hr)) {
// Llamar al método GetData
DISPID dispid;
OLECHAR* methodName = L"GetData";
hr = pDispatch->lpVtbl->GetIDsOfNames(pDispatch, &IID_NULL, &methodName,
1, LOCALE_USER_DEFAULT, &dispid);
if (SUCCEEDED(hr)) {
DISPPARAMS params = {NULL, NULL, 0, 0};
VARIANT result;
VariantInit(&result);
hr = pDispatch->lpVtbl->Invoke(pDispatch, dispid, &IID_NULL,
LOCALE_USER_DEFAULT, DISPATCH_METHOD,
¶ms, &result, NULL, NULL);
if (SUCCEEDED(hr)) {
printf("Datos obtenidos: %S\n", result.bstrVal);
VariantClear(&result);
}
}
pDispatch->lpVtbl->Release(pDispatch);
}
CoUninitialize();
return 0;
}
Antonio Linares wrote:Los asistentes al curso recibirán la versión más actual de FWH 32 ó 64 bits
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: No registered users and 36 guests