J'ai besoin de mettre à jour une colonne Attributs dans un fichier MSI. Malheureusement, je suis incapable de trouver de la documentation (en particulier pour C++).Mise à jour de la table MSI à l'aide de l'API de programmation MSI
Voici un extrait de code de ce que je suis en train de faire:
DatabasePtr db = /* opening db succeeds*/
ViewPtr view = db->OpenView(_bstr_t("SELECT Attributes FROM Component"));
view->Execute(NULL);
RecordPtr record=view->Fetch();
record->PutIntegerData(2, record->GetIntegerData(1)|2048);
// I do not exactly understand the next 2 lines
// Should I really call Execute before Modify?
record->Execute(record);
record->Modify(msiViewModifyUpdate, record); //throws a _com_error
Comme indiqué sur Record-> Modifier (...) jeter un _com_error indiquant: erreur IDispatch # 1000? Qu'est-ce que ça veut dire. Où puis-je rechercher ces codes d'erreur? Ce ne sont pas des HRESULT ...
Mais des questions plus importantes sont comment mettre à jour l'enregistrement correctement? Comment puis-je parcourir tous les enregistrements sélectionnés? Faire une nouvelle extraction et comparer l'enregistrement avec des résultats NULL dans une boucle infinie.
Merci pour l'aide,
Ovanes