przykład kodu C-C++: otwarcie prywatnej kolejki przy użyciu identyfikatora komputera i numeru kolejki

  • 10/19/2016
  • 3 minut do przeczytania

dotyczy: Windows 10, Windows 7, Windows 8, Windows 8.1, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server Technical Preview, Windows Vista

ten przykład zapewnia zdefiniowaną przez aplikację funkcję, która otwiera prywatną kolejkę opartą na komputerze lokalnym przy użyciu identyfikatora komputera i numeru kolejki podanego przez wywołującego.

wywołujący może uzyskać numer kolejki z nazw plików LQS przechowywanych w folderze Lqs (folder Lqs jest tworzony podczas instalacji MSMQ) na komputerze. Numer kolejki jest pierwszą częścią nazwy każdego pliku.

poniższa procedura pokazuje, jak funkcja otwiera kolejkę na podstawie informacji dostarczonych przez wywołującego.

aby otworzyć kolejkę za pomocą identyfikatora komputera i numeru kolejki

  1. Definiowanie maksymalnej liczby właściwości, licznika właściwości i struktury mqqmprops. W tym przykładzie właściwość identyfikator komputera jest jedyną określoną właściwością.

  2. Określ właściwość komputera PROPID_QM_MACHINE_ID

  3. Inicjalizacja struktury MQQMPROPS.

  4. wywołaj MQGetMachineProperties, aby pobrać globalnie unikalny identyfikator (GUID) komputera. Poniższy przykład kodu pobiera identyfikator GUID komputera lokalnego.

  5. Utwórz prywatną nazwę formatu dla kolejki za pomocą identyfikatora GUID komputera zwracanego przez MQGetMachineProperties i podanego numeru kolejki. (Ten przykład wykorzystuje funkcję RPC UuidToString do skonstruowania formatu kolejki prywatnej.)

    składnia nazwy formatu prywatnego jest pokazana poniżej:

    "PRIVATE=ComputerGUID\QueueNumber" 
  6. korzystając ze skonstruowanej nazwy formatu oraz trybów dostępu i udostępniania dostępnych w wywołaniu, zadzwoń do MQOpenQueue, aby otworzyć kolejkę.

przykład kodu

biblioteka i pliki nagłówkowe wymagane dla wywołań RPC wykonanych przez tę funkcję to rpcrt4.lib i rpc.h, odpowiednio. Ta funkcja nie zawiera wywołań kolejkowania wiadomości specyficznych dla wersji.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.