klucz progID niezależny od wersji

Kojarzy identyfikator progID z identyfikatorem CLSID. Ten klucz służy do określania najnowszej wersji aplikacji obiektu.

Wpis rejestru

HKEY_LOCAL_MACHINE\SOFTWARE\Classes
   <version-independent ProgID>
      CurVer = ProgID

Uwagi

Klucz HKEY_LOCAL_MACHINE\SOFTWARE\Classes odpowiada kluczowi HKEY_CLASSES_ROOT , który został zachowany w celu zachowania zgodności z wcześniejszymi wersjami modelu COM.

Format dla niezależnego od <wersji ProgID> to <program>.<składnik>, oddzielony kropkami, bez spacji i bez numeru wersji. Identyfikator ProgID niezależny od wersji, taki jak ProgID, można zarejestrować przy użyciu nazwy czytelnej dla człowieka.

ProgID to identyfikator ProgID najnowszej zainstalowanej wersji klasy.

Aplikacje muszą zarejestrować identyfikator programowy niezależny od wersji w ramach klucza progID niezależnego od wersji . Niezależny od wersji identyfikator ProgID odnosi się do klasy aplikacji i nie zmienia się z wersji na wersję, a zamiast tego pozostaje stałą we wszystkich wersjach — na przykład Microsoft Word Document. Jest on używany z językami makr i odwołuje się do aktualnie zainstalowanej wersji klasy aplikacji. Identyfikator ProgID niezależny od wersji musi odpowiadać nazwie najnowszej wersji aplikacji obiektu.

Na przykład identyfikator ProgID niezależny od wersji jest używany, gdy aplikacja kontenera tworzy wykres lub tabelę z przyciskiem paska narzędzi. W takiej sytuacji aplikacja może użyć identyfikatora ProgID niezależnego od wersji, aby określić najnowszą wersję wymaganej aplikacji obiektu.

Identyfikator ProgID niezależny od wersji jest przechowywany i obsługiwany wyłącznie przez kod aplikacji. Po podaniu identyfikatora ProgID niezależnego od wersji funkcja CLSIDFromProgID zwraca identyfikator CLSID bieżącej wersji.

Można użyć CLSIDFromProgID i ProgIDFromCLSID do konwersji między tymi dwiema reprezentacjami.

Możesz użyć klasy IOleObject::GetUserType lub OleRegGetUserType , aby zmienić identyfikator na ciąg wyświetlany.

Jeśli niestandardowy program obsługi nie jest używany, należy ustawić wpis na OLE32.DLL, jak pokazano w poniższym przykładzie:

HKEY_CLASSES_ROOT\CLSID\{00000402-0000-0000-C000-000000000046}
   InprocHandler = ole32.dll

CLSIDFromProgID

ProgIDFromCLSID

<Klucz progID>