prentice : : opérateur !
Opérateur pour déterminer si l'objet COM propriétaire n'est pas valide.
bool operator!();
Valeur de retour
true si l'objet COM propriétaire est invalide ; false sinon.
Notes
L'objet COM propriétaire n'est pas valide s'il n'est pas nullptr.
Exemple
Cet exemple implémente une classe CLR qui utilise un com::ptr pour encapsuler son objet membre privé IXMLDOMDocument. La fonction membre CreateInstance utilise operator! qui détermine si un objet document est déjà possédé, et crée uniquement une nouvelle instance si l'objet est invalide.
// comptr_op_not.cpp
// compile with: /clr /link msxml2.lib
#include <msxml2.h>
#include <msclr\com\ptr.h>
#import <msxml3.dll> raw_interfaces_only
using namespace System;
using namespace System::Runtime::InteropServices;
using namespace msclr;
// a ref class that uses a com::ptr to contain an
// IXMLDOMDocument object
ref class XmlDocument {
public:
void CreateInstance(String^ progid) {
if (!m_ptrDoc) {
m_ptrDoc.CreateInstance(progid);
if (m_ptrDoc) {
Console::WriteLine("DOM Document created.");
}
}
}
// note that the destructor will call the com::ptr destructor
// and automatically release the reference to the COM object
private:
com::ptr<IXMLDOMDocument> m_ptrDoc;
};
// use the ref class to handle an XML DOM Document object
int main() {
try {
XmlDocument doc;
// create the instance from a progid string
doc.CreateInstance("Msxml2.DOMDocument.3.0");
}
catch (Exception^ e) {
Console::WriteLine(e);
}
}
Configuration requise
Fichier d'en-tête <msclr\com\ptr.h>
Espace de nommage msclr::com