MsiGetPatchInfoExA-Funktion (msi.h)
Die MsiGetPatchInfoEx-Funktion fragt Informationen zur Anwendung eines Patches für eine angegebene instance eines Produkts ab.
Syntax
UINT MsiGetPatchInfoExA(
[in] LPCSTR szPatchCode,
[in] LPCSTR szProductCode,
[in] LPCSTR szUserSid,
[in] MSIINSTALLCONTEXT dwContext,
[in] LPCSTR szProperty,
[out, optional] LPSTR lpValue,
[in, out] LPDWORD pcchValue
);
Parameter
[in] szPatchCode
Eine Zeichenfolge mit NULL-Beendigung, die die GUID des Patches enthält. Dieser Parameter darf nicht NULL sein.
[in] szProductCode
Eine NULL-terminierte Zeichenfolge, die die ProductCode-GUID des produktbasierten instance enthält. Dieser Parameter darf nicht NULL sein.
[in] szUserSid
Eine NULL-endende Zeichenfolge, die die Sicherheits-ID (SID) angibt, unter der die instance des abgefragten Patches vorhanden ist. Die Verwendung eines NULL-Werts gibt den aktuellen Benutzer an.
[in] dwContext
Schränkt die Enumeration auf einen benutzerunabhängigen, benutzerseitig verwalteten oder pro Computer verwalteten Kontext ein. Bei diesem Parameter kann es sich um einen der folgenden Werte handeln.
[in] szProperty
Eine NULL-endende Zeichenfolge, die den abzurufenden Eigenschaftswert angibt. Der szProperty-Parameter kann einer der folgenden Sein:
Name | Bedeutung |
---|---|
|
Ruft die zwischengespeicherte Patchdatei ab, die vom Produkt verwendet wird. |
|
Ruft den Satz von Patchtransformationen ab, die die letzte Patchinstallation auf das Produkt angewendet hat. Dieser Wert ist möglicherweise nicht für benutzerspezifische, nicht verwaltete Anwendungen verfügbar, wenn der Benutzer nicht angemeldet ist. |
|
Ruft den Letzten Empfang des Diensts für dieses Produkt ab. Der Wert dieser Eigenschaft wird jedes Mal dann ersetzt, wenn ein Patch angewendet oder aus dem Produkt entfernt wird oder die Befehlszeilenoption „/v“ verwendet wird, um das Produkt zu reparieren. Wenn das Produkt keine Reparaturen oder Patches erhalten hat, enthält diese Eigenschaft den Zeitpunkt, zu dem dieses Produkt auf diesem Computer installiert wurde. |
|
Gibt 1 zurück, wenn der Patch als vom Produkt deinstallierbar markiert ist. In diesem Fall kann das Installationsprogramm die Deinstallation weiterhin blockieren, wenn dieser Patch von einem anderen Patch benötigt wird, der nicht deinstalliert werden kann. |
|
Gibt 1 zurück, wenn dieser Patch derzeit auf das Produkt angewendet ist. Gibt "2" zurück, wenn dieser Patch durch einen anderen Patch ersetzt wird. Gibt "4" zurück, wenn dieser Patch veraltet ist. Diese Werte entsprechen den Konstanten, die der dwFilter-Parameter von MsiEnumPatchesEx verwendet. |
|
Ruft den registrierten Anzeigename für den Patch ab. Bei Patches, die keine DisplayName-Eigenschaft in der MsiPatchMetadata-Tabelle enthalten, ist der zurückgegebene Anzeigename eine leere Zeichenfolge (""). |
|
Ruft die registrierte URL mit Supportinformationen für den Patch ab. Bei Patches, die keine MoreInfoURL-Eigenschaft in der MsiPatchMetadata-Tabelle enthalten, ist die zurückgegebene URL mit Supportinformationen eine leere Zeichenfolge (""). |
[out, optional] lpValue
Dieser Parameter ist ein Zeiger auf einen Puffer, der den Eigenschaftswert empfängt. Dieser Puffer sollte groß genug sein, um die Informationen zu enthalten. Wenn der Puffer zu klein ist, gibt die Funktion ERROR_MORE_DATA zurück und legt *pcchValue auf die Anzahl von TCHAR im Eigenschaftswert fest, ohne das abschließende NULL-Zeichen .
Wenn lpValue auf NULL und pcchValue auf einen gültigen Zeiger festgelegt ist, gibt die Funktion ERROR_SUCCESS zurück und legt *pcchValue auf die Anzahl von TCHAR im Wert fest, ohne das abschließende NULL-Zeichen . Die Funktion kann dann erneut aufgerufen werden, um den Wert abzurufen, wobei der Puffer lpValue groß genug ist, um *pcchValue + 1 Zeichen zu enthalten.
Wenn lpValue und pcchValue beide auf NULL festgelegt sind, gibt die Funktion ERROR_SUCCESS zurück, wenn der Wert vorhanden ist, ohne den Wert abzurufen.
[in, out] pcchValue
Beim Aufrufen der Funktion sollte dieser Parameter ein Zeiger auf eine Variable sein, die die Anzahl von TCHAR im lpValue-Puffer angibt. Wenn die Funktion zurückgibt, wird dieser Parameter auf die Größe des angeforderten Werts festgelegt, unabhängig davon, ob die Funktion den Wert in den angegebenen Puffer kopiert oder nicht. Die Größe wird als Anzahl von TCHAR im angeforderten Wert zurückgegeben, ohne das abschließende NULL-Zeichen.
Dieser Parameter kann nur auf NULL festgelegt werden, wenn lpValue ebenfalls NULL ist. Andernfalls gibt die Funktion ERROR_INVALID_PARAMETER zurück.
Rückgabewert
Die MsiGetPatchInfoEx-Funktion gibt die folgenden Werte zurück.
Rückgabecode | Beschreibung |
---|---|
|
Die Funktion versucht nicht, auf eine Ressource mit unzureichenden Berechtigungen zuzugreifen. |
|
Die Konfigurationsdaten sind beschädigt. |
|
Die Funktion schlägt fehl, und der Fehler wird in anderen Fehlercodes nicht identifiziert. |
|
Ein ungültiger Parameter wird an die Funktion übergeben. |
|
Der Wert passt nicht in den bereitgestellten Puffer. |
|
Der Patch wurde erfolgreich aufgezählt. |
|
Das produkt, das szProduct angibt, ist nicht auf dem Computer installiert. |
|
Die Eigenschaft wird nicht erkannt. |
|
Der Patch ist nicht erkannt. |
Hinweise
Windows Installer 2.0: Nicht unterstützt. Diese Funktion ist ab Windows Installer Version 3.0 verfügbar.
Ein Benutzer kann Patchdaten für alle sichtbaren Produkt-instance abfragen. Die Administratorgruppe kann Patchdaten für alle Produkt-instance und jeden Benutzer auf dem Computer abfragen. Nicht alle Werte sind garantiert für nicht verwaltete Anwendungen pro Benutzer verfügbar, wenn der Benutzer nicht angemeldet ist.
Hinweis
Der msi.h-Header definiert MsiGetPatchInfoEx als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit nicht codierungsneutralem Code kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Unterstützte Mindestversion (Client) | Windows Installer 5.0 unter Windows Server 2012, Windows 8, Windows Server 2008 R2 oder Windows 7. Windows Installer 4.0 oder Windows Installer 4.5 unter Windows Server 2008 oder Windows Vista. Informationen zum minimal erforderlichen Windows Service Pack für eine Windows Installer-Version finden Sie unter Windows Installer – Laufzeitanforderungen. |
Zielplattform | Windows |
Kopfzeile | msi.h |
Bibliothek | Msi.lib |
DLL | Msi.dll |