El IDispatch es el interfaz que expone el protocolo VIEJO de la automatización . Es uno de los interfaces estándar que se pueden exponer por los objetos de COM . El I en el IDispatch refiere al interfaz. COM distingue entre tres tipos de interfaz: aduana del, envío del e interfaces duales del .
IDispatch deriva IUnknown y amplía su sistema de tres métodos ( AddRef, lanzamiento del y QueryInterface ) con los cuatro métodos adicionales - el GetTypeInfoCount, el GetTypeInfo, el GetIDsOfNames y el invocan .
El interfaz de la automatización (IDispatch) permite que un uso de cliente descubra qué características y métodos son apoyados por un objeto en run-time. También proporciona la información necesaria invocar estas características y métodos. Los usos de cliente no necesitan ser conscientes de los miembros del objeto cuando se compilan. Esto permite los objetos de COM y de ActiveX que se llamarán scripting las plataformas de los programas tales como el servidor y el Javascript ASP en el Internet Explorer, donde llamando a convenciones no se sabe que en ese entonces el IIS o IE fue construido. Por el contrario, una biblioteca objeto simple es compilada y ligada en un programa, mientras que las necesidades de una llamada del DLL también de saber un nombre y parámetros de función en de tiempo de compilación. Semejantemente, los montajes .NET no substituyen la función de IDispatch y de COM puesto que cualquier función llamada de un programa se debe saber en de tiempo de compilación.
Cada característica y método ejecutados por un objeto que apoye el interfaz de IDispatch tiene qué se llama una identificación del envío, que es a menudo DISPID abreviado. El DISPID es los medios primarios de identificar una característica o un método y se debe proveer al invoca la función de para que una característica o un método sea invocada, junto con un arsenal de las variantes que contienen los parámetros. La función de GetIDsOfNames del se puede utilizar para conseguir el DISPID apropiado de un nombre de la característica o del método que esté en formato de la secuencia .
Un escritor de escritura puede preguntar a la COM se opone para un método o una característica que sabe ya alrededor de la documentación. Entonces, el cliente puede ejecutar la función con invoca proporcionado por el interfaz de IDispatch, una forma de tarde-que ata . Esta clase de capacidad también fue apoyada por el de intercambio de datos dinámico (DDE), que nunca vencía popular a ser demasiado bajo.
Es flexible, pero sufre de los gastos indirectos de comprobar la validez del método y de parámetros en el tiempo de pasada.
interfaz IDispatch: IUnknown público { ULONG virtual GetTypeInfoCount (pctinfo sin firmar) de la internacional FAR* = 0; HRESULT virtual GetTypeInfo (iTInfo sin firmar de la internacional, Lcid de LCID, ITypeInfo FAR* FAR* ppTInfo ) = 0; ULONG virtual GetIDsOfNames (riid REFIID, OLECHAR FAR* FAR* rgszNames, cNames sin firmar de la internacional, Lcid de LCID, rgDispId de DISPID FAR* ) = 0; ULONG virtuales invocan (el dispIdMember de DISPID, Riid de REFIID, Lcid de LCID, wFlags de la PALABRA, pDispParams de DISPPARAMS FAR*, pVarResult VARIABLE de FAR*, pExcepInfo de EXCEPINFO FAR*, puArgErr sin firmar de la internacional FAR* ) = 0; }; La identificación del interfaz de IDispatch es {00020400-0000-0000-C000-000000000046}.
| Random links: | Orden natural | Fortaleza estupenda de la dimensión | Steve Perrin | Jacques Roumain | Tecnologías americanas unidas |