|
|
|
|
- Controles realizados
- Gestión de errores
- Parámetros que se deben pasar al método del objeto COM
- Pasar una cadena a un método de objeto COM o recuperar una cadena después de la llamada a un método de objeto COM
- Pasar una estructura que contiene una cadena a un método de objeto COM
- Procedure llamó en CallBack
- Varios
Ejecuta un método de una interfaz de un objeto COM instanciado por COMCreateInstance.
WallPaper is UNICODE string
WallPaper = AnsiToUnicode(RepeatString(" ", 260))
ActiveDesktop is COMObject
ActiveDesktop = COMCreateInstance("75048700-EF1F-11D0-9888-006097DEACF9", ...
"F490EB00-1240-11D1-9888-006097DEACF9")
IF ErrorOccurred = False THEN
COMCallMethod(ActiveDesktop, 4, &WallPaper, 260, 1)
Info("The image of the desktop is: " + UnicodeToAnsi(WallPaper))
END
Sintaxis
Usando el número de método Ocultar los detalles
<Result> = COMCallMethod(<COM Object> , <Method number> [, <Parameter 1> [... [, <Parameter N>]]])
<Result>: Un entero de 4 bytes en 32 bits, un entero de 8 bytes en 64 bits Resultado de la ejecución del método. Este resultado puede ser un código de error. La clase de este resultado depende de la ejecución del método. Para más detalles, consulte la documentación sobre el método. El resultado del método no se recuperará si su tamaño excede el tamaño del entero definido para la plataforma. <COM Object>: COMObject Variable Interfaz del objeto COM devuelto por COMCreateInstance. <Method number>: Integro Número de orden del método en el tabla de métodos virtuales.
ATENCIÓN:- el número de orden tiene en cuenta las clases base
- el número de orden empieza por 0.
<Parameter 1>: El tipo correspondiente al parámetro Primer parámetro que se pasará al método. Estos parámetros y los parámetros esperados por el método deben ser del mismo tipo. Se puede utilizar: - los tipos "simples" (véanse las Observaciones),
- las estructuras (ver las Observaciones),
- un nombre de WLanguage Procedure. Esta Procedure se llamará por el método (ver las Notas).
<Parameter N>: El tipo correspondiente al parámetro Nth parámetro que se pasará al método. Estos parámetros y los parámetros esperados por el método deben ser del mismo tipo. Se puede utilizar: - los tipos "simples" (véanse las Observaciones),
- las estructuras (ver las Observaciones),
- un nombre de WLanguage Procedure. Esta Procedure se llamará por el método (ver las Notas).
Usando una API description Variable Ocultar los detalles
<Result> = COMCallMethod(<COM Object> , <API to run> [, <Parameter 1> [... [, <Parameter N>]]])
<Result>: Un entero de 4 bytes en 32 bits, un entero de 8 bytes en 64 bits Resultado de la ejecución del método. Este resultado puede ser un código de error. La clase de este resultado depende de la ejecución del método. Para más detalles, consulte la documentación sobre el método. El resultado del método no se recuperará si su tamaño excede el tamaño del entero definido para la plataforma. <COM Object>: COMObject Variable Interfaz del objeto COM devuelto por COMCreateInstance. <API to run>: API description Variable API description Variable que contiene las características del método a ejecutar. <Parameter 1>: El tipo correspondiente al parámetro Primer parámetro que se pasará al método. Estos parámetros y los parámetros esperados por el método deben ser del mismo tipo. Se puede utilizar: - los tipos "simples" (véanse las Observaciones),
- las estructuras (ver las Observaciones),
- un nombre de WLanguage Procedure. Esta Procedure se llamará por el método (ver las Notas).
<Parameter N>: El tipo correspondiente al parámetro Nth parámetro que se pasará al método. Estos parámetros y los parámetros esperados por el método deben ser del mismo tipo. Se puede utilizar: - los tipos "simples" (véanse las Observaciones),
- las estructuras (ver las Observaciones),
- un nombre de WLanguage Procedure. Esta Procedure será llamada por un método (ver Notas).
Observaciones Método COMCall es protected contra los "Fallos de protección general" en el método llamado. Sin embargo, un error WLanguage se activa si se produce este tipo de error. Al ejecutar los métodos, si el resultado devuelto corresponde a un error, utilice la función ErrorInfo (con la constante errSystemCode o errSystemMessage) para obtener los detalles del error. Parámetros que se deben pasar al método del objeto COM Estos parámetros y los parámetros esperados por el método deben tener el mismo tipo. Los tipos disponibles son los siguientes: - Los tipos "simples" (entero, real y booleano). El uso de otro tipo de WLanguage desencadena un error de WLanguage.
Si el método a ejecutar espera un puntero de Windows o manipular, utilice un system integer. Si el método a ejecutar espera una Address, utilice el operador &. - Los tipos "cadena.
- Los tipos de estructura.
- Un nombre de WLanguage Procedure. Esta Procedure será llamada por el método del objeto COM (ver el párrafo siguiente).
Los parámetros dependen de la ejecución del método. Consulte la documentación sobre este método para obtener más detalles.
Pasar una cadena a un método de objeto COM o recuperar una cadena después de la llamada a un método de objeto COM - En el parámetro de entrada, utilice el tipo de cadena. Por ejemplo:
sString is string COMCallMethod(<Object>, <Method number>, sString) - En el parámetro de salida, el lenguaje C no puede gestionar fácilmente las cadenas dinámicas. Por lo tanto, debes hacerlo:
- definir un tamaño máximo, con el tipo "String on. Por ejemplo:
sString is string on 100 COMCallMethod(<Object>, <Method number>, sString) // in Method in C: // strncpy(PointerInC, "Test", 100) - recuperar las direcciones de las cadenas en C (sin embargo, en este caso, la sección de código en C debe "preservar" las cadenas devueltas), luego transferir la cadena a una cadena Variable con StringRetrieve. Por ejemplo:
nStringAddress is system int COMCallMethod(<Object>, <Method number>, &nStringAddress) sString is string sString = StringRetrieve(nStringAddress, srASCIIZAddress) // in Method in C: *PointerInC = "Test"
- En el valor de retorno, recuperar las direcciones de las cadenas en C (sin embargo, en este caso, la sección de código en C debe "preservar" las cadenas devueltas), a continuación, transferir la cadena en una cadena Variable con StringRetrieve. Por ejemplo:
nStringAddress is system int nStringAddress = COMCallMethod(<Object>, <Method number>) sString is string sString = StringRetrieve(nStringAddress, srASCIIZAddress) // in Method in C: Return PointerInC
Pasar una estructura que contiene una cadena a un método de objeto COM - En la entrada se debe utilizar el siguiente código:
Struct is structure sString is string END AStruct is Struct COMCallMethod(<Object>, <Method number>, &AStruct) - En salida, el lenguaje C no gestiona fácilmente las cadenas dinámicas. Por lo tanto, debes hacerlo:
- definir un tamaño máximo y realizar una copy en la memoria de WLanguage. Por ejemplo:
sString is string on 100 Struct is structure aString is int END AStruct is Struct AStruct:aString = &sString COMCallMethod(<Object>, <Method number>, &AStruct) // in Method in C: // strncpy(StructInC->PointerInC, "Test", 100) - recuperar la Address de cadenas en C (sin embargo, en este caso, la sección de código en C debe "preservar" las cadenas devueltas). Por ejemplo:
sString is string Struct is structure aString is int END AStruct is Struct COMCallMethod(<Object>, <Method number>, &AStruct) sString = StringRetrieve(AStruct:aString, srASCIIZAddress) // in Method in C: StructInC->PointerInC = "Test"
Procedure llamó en CallBack Algunos métodos esperan la dirección de una "Callback" Procedure como parámetro: esta Procedure será llamada por el método del objeto COM. Para usar una llamada de Procedure en WLanguage: 1. Cree la devolución de llamada Procedure en su proyecto Para recuperar los parámetros, debe describir exactamente los parámetros esperados por la función "CallBack. De lo contrario, pueden producirse "fallos generales de protección".. PROCEDURE <Procedure name> (<Param1> is <Type1>,<Param2> is <Type2>) Observaciones: - Los tipos deben corresponder a los descritos en la documentación del objeto COM.
- Los parámetros deben necesariamente ser pasados por valor. Para recuperar un parámetro de reference:
- Utilice un número entero.
- Con Transferencia, recupera o asigna el valor real.
2. Modifique la llamada al método en consecuencia.. Utilice la siguiente sintaxis: COMCallMethod(<Object>, <Method number>, &<Name of CallBack procedure>)
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|