Type::GetTypeFromProgID Method (String^, Boolean)
Gets the type associated with the specified program identifier (ProgID), specifying whether to throw an exception if an error occurs while loading the type.
Assembly: mscorlib (in mscorlib.dll)
public: [SecurityCriticalAttribute] static Type^ GetTypeFromProgID( String^ progID, bool throwOnError )
Parameters
- progID
-
Type:
System::String^
The ProgID of the type to get.
- throwOnError
-
Type:
System::Boolean
true to throw any exception that occurs.
-or-
false to ignore any exception that occurs.
Return Value
Type: System::Type^The type associated with the specified program identifier (ProgID), if progID is a valid entry in the registry and a type is associated with it; otherwise, null.
| Exception | Condition |
|---|---|
| ArgumentException | progID is null. |
| COMException | The specified ProgID is not registered. |
This method is provided for COM support. Program IDs are not used in Microsoft .NET Framework because they have been superseded by the concept of namespace.
The following example retrieves a type by passing a ProgID, specifying whether to throw an exception if the ProgID is invalid. The example then displays the ClassID related to the ProgID, along with any applicable exception message.
using namespace System; int main() { try { // Use the ProgID HKEY_CLASSES_ROOT\DirControl.DirList.1. String^ myString1 = "DIRECT.ddPalette.3"; // Use a nonexistent ProgID WrongProgID. String^ myString2 = "WrongProgID"; // Make a call to the method to get the type information of the given ProgID. Type^ myType1 = Type::GetTypeFromProgID( myString1, true ); Console::WriteLine( "GUID for ProgID DirControl.DirList.1 is {0}.", myType1->GUID ); // Throw an exception because the ProgID is invalid and the throwOnError // parameter is set to True. Type^ myType2 = Type::GetTypeFromProgID( myString2, true ); } catch ( Exception^ e ) { Console::WriteLine( "An exception occurred." ); Console::WriteLine( "Source: {0}", e->Source ); Console::WriteLine( "Message: {0}", e->Message ); } }
Requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.
Available since 1.1