Klasa COleObjectFactory
Implementuje fabrykę klas OLE, która tworzy obiekty OLE, takie jak serwery, obiekty automatyzacji i dokumenty.
Składnia
class COleObjectFactory : public CCmdTarget
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
COleObjectFactory::COleObjectFactory | COleObjectFactory Tworzy obiekt. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
COleObjectFactory::GetClassID | Zwraca identyfikator klasy OLE obiektów tworzonych przez tę fabrykę. |
COleObjectFactory::IsLicenseValid | Określa, czy licencja kontrolki jest prawidłowa. |
COleObjectFactory::IsRegistered | Wskazuje, czy fabryka obiektów jest zarejestrowana w bibliotekach DLL systemu OLE. |
COleObjectFactory::Register | Rejestruje tę fabrykę obiektów za pomocą bibliotek DLL systemu OLE. |
COleObjectFactory::RegisterAll | Rejestruje wszystkie fabryki obiektów aplikacji w bibliotekach DLL systemu OLE. |
COleObjectFactory::Revoke | Odwołuje rejestrację tej fabryki obiektów przy użyciu bibliotek DLL systemu OLE. |
COleObjectFactory::RevokeAll | Odwołuje rejestracje fabryk obiektów aplikacji przy użyciu bibliotek DLL systemu OLE. |
COleObjectFactory::UnregisterAll | Wyrejestrowuje wszystkie fabryki obiektów aplikacji. |
COleObjectFactory::UpdateRegistry | Rejestruje tę fabrykę obiektów w rejestrze systemu OLE. |
COleObjectFactory::UpdateRegistryAll | Rejestruje wszystkie fabryki obiektów aplikacji w rejestrze systemu OLE. |
Metody chronione
Nazwa/nazwisko | opis |
---|---|
COleObjectFactory::GetLicenseKey | Żąda unikatowego klucza z biblioteki DLL kontrolki. |
COleObjectFactory::OnCreateObject | Wywoływana przez platformę w celu utworzenia nowego obiektu typu tej fabryki. |
COleObjectFactory::VerifyLicenseKey | Sprawdza, czy klucz osadzony w kontrolce jest zgodny z kluczem osadzonym w kontenerze. |
COleObjectFactory::VerifyUserLicense | Sprawdza, czy kontrolka ma licencję na czas projektowania. |
Uwagi
Klasa COleObjectFactory
ma funkcje składowe do wykonywania następujących funkcji:
Zarządzanie rejestracją obiektów.
Aktualizowanie rejestru systemu OLE, a także rejestracja w czasie wykonywania, która informuje OLE, że obiekty są uruchomione i gotowe do odbierania komunikatów.
Wymuszanie licencjonowania przez ograniczenie korzystania z kontroli dla licencjonowanych deweloperów w czasie projektowania i licencjonowanych aplikacji w czasie wykonywania.
Rejestrowanie fabryk obiektów sterujących za pomocą rejestru systemowego OLE.
Aby uzyskać więcej informacji na temat tworzenia obiektów, zobacz artykuły Obiekty danych i źródła danych (OLE) oraz Obiekty danych i źródła danych: tworzenie i niszczenie. Aby uzyskać więcej informacji na temat rejestracji, zobacz artykuł Rejestracja.
Hierarchia dziedziczenia
COleObjectFactory
Wymagania
Nagłówek: afxdisp.h
COleObjectFactory::COleObjectFactory
COleObjectFactory
Tworzy obiekt, inicjuje go jako niezarejestrowaną fabrykę obiektów i dodaje go do listy fabryk.
COleObjectFactory(
REFCLSID clsid,
CRuntimeClass* pRuntimeClass,
BOOL bMultiInstance,
LPCTSTR lpszProgID);
COleObjectFactory(
REFCLSID clsid,
CRuntimeClass* pRuntimeClass,
BOOL bMultiInstance,
int nFlags,
LPCTSTR lpszProgID);
Parametry
clsid
Odwołanie do identyfikatora klasy OLE, który reprezentuje ta fabryka obiektów.
pRuntimeClass
Wskaźnik do klasy czasu wykonywania obiektów języka C++, które może utworzyć ta fabryka.
bMultiInstance
Wskazuje, czy pojedyncze wystąpienie aplikacji może obsługiwać wiele wystąpień. Jeśli wartość TRUE, dla każdego żądania zostanie uruchomionych wiele wystąpień aplikacji w celu utworzenia obiektu.
nFlags
Zawiera co najmniej jedną z następujących flag:
afxRegDefault
Ustawia model wątkowania na ThreadingModel=Apartment.afxRegInsertable
Umożliwia wyświetlenie kontrolki w oknie dialogowym Wstawianie obiektu dla obiektów OLE.afxRegApartmentThreading
Ustawia model wątków w rejestrze na ThreadingModel=Apartment.afxRegFreeThreading
Ustawia model wątków w rejestrze na ThreadingModel=Free.Możesz połączyć dwie flagi
afxRegApartmentThreading
iafxRegFreeThreading
ustawić element ThreadingModel=Both. Aby uzyskać więcej informacji na temat rejestracji modelu wątkowego, zobacz InprocServer32 w zestawie Windows SDK.
lpszProgID
Wskaźnik do ciągu zawierającego identyfikator programu słownego, taki jak "Microsoft Excel".
Uwagi
Aby jednak użyć obiektu, należy go zarejestrować.
Aby uzyskać więcej informacji, zobacz CLSID Key in the Windows SDK (Klucz CLSID w zestawie WINDOWS SDK).
COleObjectFactory::GetClassID
Zwraca odwołanie do identyfikatora klasy OLE reprezentowanego przez tę fabrykę.
REFCLSID GetClassID() const;
Wartość zwracana
Odwołanie do identyfikatora klasy OLE, który reprezentuje ta fabryka.
Uwagi
Aby uzyskać więcej informacji, zobacz CLSID Key in the Windows SDK (Klucz CLSID w zestawie WINDOWS SDK).
COleObjectFactory::GetLicenseKey
Żąda unikatowego klucza licencji z biblioteki DLL kontrolki i przechowuje go w pliku BSTR wskazywanym przez wartość pbstrKey.
virtual BOOL GetLicenseKey(
DWORD dwReserved,
BSTR* pbstrKey);
Parametry
dwReserved
Zarezerwowane do użytku w przyszłości.
pbstrKey
Wskaźnik do ciągu BSTR, który będzie przechowywać klucz licencji.
Wartość zwracana
Nonzero, jeśli ciąg klucza licencji nie ma wartości NULL; w przeciwnym razie 0.
Uwagi
Domyślna implementacja tej funkcji zwraca wartość 0 i nie przechowuje niczego w pliku BSTR. Jeśli używasz biblioteki MFC ActiveX ControlWizard do utworzenia projektu, kontrolka ControlWizard dostarcza przesłonięcia, które pobiera klucz licencji kontrolki.
COleObjectFactory::IsLicenseValid
Określa, czy licencja kontrolki jest prawidłowa.
BOOL IsLicenseValid();
Wartość zwracana
Wartość TRUE, jeśli operacja zakończyła się pomyślnie; w przeciwnym razie wartość false.
COleObjectFactory::IsRegistered
Zwraca wartość niezerową, jeśli fabryka jest zarejestrowana w bibliotekach DLL systemu OLE.
virtual BOOL IsRegistered() const;
Wartość zwracana
Nonzero, jeśli fabryka jest zarejestrowana; w przeciwnym razie 0.
COleObjectFactory::OnCreateObject
Wywoływana przez platformę w celu utworzenia nowego obiektu.
virtual CCmdTarget* OnCreateObject();
Wartość zwracana
Wskaźnik do utworzonego obiektu. Jeśli wystąpi błąd, może zgłosić wyjątek pamięci.
Uwagi
Zastąpij tę funkcję, aby utworzyć obiekt z innego obiektu niż klasa CRuntimeClass przekazana do konstruktora.
COleObjectFactory::Register
Rejestruje tę fabrykę obiektów za pomocą bibliotek DLL systemu OLE.
virtual BOOL Register();
Wartość zwracana
Nonzero, jeśli fabryka została pomyślnie zarejestrowana; w przeciwnym razie 0.
Uwagi
Ta funkcja jest zwykle wywoływana przez aplikację CWinApp::InitInstance po uruchomieniu aplikacji.
COleObjectFactory::RegisterAll
Rejestruje wszystkie fabryki obiektów aplikacji przy użyciu bibliotek DLL systemu OLE.
static BOOL PASCAL RegisterAll();
Wartość zwracana
Nonzero, jeśli fabryki są pomyślnie zarejestrowane; w przeciwnym razie 0.
Uwagi
Ta funkcja jest zwykle wywoływana przez aplikację CWinApp::InitInstance po uruchomieniu aplikacji.
COleObjectFactory::Revoke
Odwołuje rejestrację tej fabryki obiektów przy użyciu bibliotek DLL systemu OLE.
void Revoke();
Uwagi
Platforma automatycznie wywołuje tę funkcję przed zakończeniem działania aplikacji. W razie potrzeby wywołaj ją z przesłonięcia CWinApp::ExitInstance.
COleObjectFactory::RevokeAll
Odwołuje wszystkie rejestracje fabryk obiektów aplikacji przy użyciu bibliotek DLL systemu OLE.
static void PASCAL RevokeAll();
Uwagi
Platforma automatycznie wywołuje tę funkcję przed zakończeniem działania aplikacji. W razie potrzeby wywołaj ją z przesłonięcia CWinApp::ExitInstance.
COleObjectFactory::UnregisterAll
Wyrejestrowuje wszystkie fabryki obiektów aplikacji.
static BOOL PASCAL UnregisterAll();
Wartość zwracana
Wartość TRUE, jeśli operacja zakończyła się pomyślnie; w przeciwnym razie FAŁSZ.
COleObjectFactory::UpdateRegistry
Rejestruje wszystkie fabryki obiektów aplikacji w rejestrze systemu OLE.
void UpdateRegistry(LPCTSTR lpszProgID = NULL);
virtual BOOL UpdateRegistry(BOOL bRegister);
Parametry
lpszProgID
Wskaźnik do ciągu zawierającego identyfikator programu czytelny dla człowieka, taki jak "Excel.Document.5".
bRegister
Określa, czy fabryka obiektów klasy kontrolnej ma być zarejestrowana.
Uwagi
Poniżej przedstawiono krótkie dyskusje na temat dwóch formularzy dla tej funkcji:
UpdateRegistry(
lpszProgID
) rejestruje tę fabrykę obiektów w rejestrze systemu OLE. Ta funkcja jest zwykle wywoływana przez aplikację CWinApp::InitInstance po uruchomieniu aplikacji.UpdateRegistry(
bRegister
) Ta forma funkcji jest zastępowana. Jeśli wartość bRegister ma wartość TRUE, ta funkcja rejestruje klasę sterowania w rejestrze systemowym. W przeciwnym razie wyrejestruje klasę.Jeśli używasz biblioteki MFC ActiveX ControlWizard do utworzenia projektu, kontrolkaWizard dostarcza przesłonięcia tej czystej funkcji wirtualnej.
COleObjectFactory::UpdateRegistryAll
Rejestruje wszystkie fabryki obiektów aplikacji w rejestrze systemu OLE.
static BOOL PASCAL UpdateRegistryAll(BOOL bRegister = TRUE);
Parametry
bRegister
Określa, czy fabryka obiektów klasy kontrolnej ma być zarejestrowana.
Wartość zwracana
Nonzero, jeśli fabryki zostały pomyślnie zaktualizowane; w przeciwnym razie 0.
Uwagi
Ta funkcja jest zwykle wywoływana przez aplikację CWinApp::InitInstance po uruchomieniu aplikacji.
COleObjectFactory::VerifyLicenseKey
Sprawdza, czy kontener ma licencję na używanie kontrolki OLE.
virtual BOOL VerifyLicenseKey(BSTR bstrKey);
Parametry
bstrKey
BSTR przechowując wersję ciągu licencji kontenera.
Wartość zwracana
Nonzero, jeśli licencja czasu wykonywania jest ważna; w przeciwnym razie 0.
Uwagi
Domyślna wersja wywołuje metodę GetLicenseKey , aby uzyskać kopię ciągu licencji kontrolki i porównuje ją z ciągiem w elemencie bstrKey. Jeśli dwa ciągi są zgodne, funkcja zwraca wartość niezerową; w przeciwnym razie zwraca wartość 0.
Tę funkcję można zastąpić, aby zapewnić dostosowaną weryfikację licencji.
Funkcja VerifyUserLicense weryfikuje licencję czasu projektowania.
COleObjectFactory::VerifyUserLicense
Weryfikuje licencję czasu projektowania dla kontrolki OLE.
virtual BOOL VerifyUserLicense();
Wartość zwracana
Nonzero, jeśli licencja w czasie projektowania jest ważna; w przeciwnym razie 0.