Klasa COleObjectFactory

Implementuje fabrykę klas OLE, która tworzy obiekty OLE, takie jak serwery, obiekty automatyzacji i dokumenty.

Składnia

class COleObjectFactory : public CCmdTarget

Członkowie

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

Cobject

Ccmdtarget

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 i afxRegFreeThreading 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.

Zobacz też

Klasa CCmdTarget
Wykres hierarchii
Klasa COleTemplateServer