Ejemplo de Código C-C++: Abrir una Cola Privada Usando un Identificador de Equipo y un Número de Cola
- 10/19/2016
- 3 minutos de lectura
Se aplica a: Windows 10, Windows 7, Windows 8, Windows 8.1, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Vista previa técnica de Windows Server, Windows Vista
Este ejemplo proporciona una función definida por la aplicación que abre una cola privada basada en el equipo local mediante su identificador de equipo y un número de cola proporcionado por el autor de la llamada.
La persona que llama puede obtener el número de cola de los nombres de los archivos LQ almacenados en la carpeta Lqs (la carpeta Lqs se crea cuando se instala MSMQ) en el equipo. El número de cola es la primera parte del nombre de cada archivo.
El siguiente procedimiento muestra cómo la función abre la cola en función de la información proporcionada por el llamante.
Para abrir una cola utilizando un identificador de equipo y un número de cola
-
Defina el número máximo de propiedades a especificar, el contador de propiedades y la estructura MQQMPROPS. En este ejemplo, la propiedad identificador de equipo es la única propiedad especificada.
-
Especifique la propiedad de equipo PROPID_QM_MACHINE_ID
-
Inicialice la estructura MQQMPROPS.
-
Llame a MQGetMachineProperties para recuperar el identificador único global (GUID) del equipo. El siguiente ejemplo de código recupera el GUID del equipo local.
-
Construya un nombre de formato privado para la cola utilizando el GUID del equipo devuelto por MQGetMachineProperties y el número de cola proporcionado. (Este ejemplo utiliza la función RPC UuidToString para construir el formato de la cola privada.)
La sintaxis del nombre del formato privado se muestra a continuación:
"PRIVATE=ComputerGUID\QueueNumber"
-
Usando el nombre del formato construido y los modos de acceso y uso compartido proporcionados en la llamada, llame a MQOpenQueue para abrir la cola.
Ejemplo de código
Los archivos de biblioteca y encabezado necesarios para las llamadas RPC realizadas por esta función son rpcrt4.lib y rpc.h, respectivamente. Esta función no contiene llamadas de cola de mensajes específicas de la versión.