How to list all ActiveX controls?

Is there a way to view / view all ActiveX controls in the system or for a specific application? Can this be done on any administration screen, as well as in code?

Thanks for any help.

+4
source share
3 answers

I usually use OLEview to check COM / ActiveX objects on my computer, as this also allows me to check the interfaces exposed by objects.

The programming approach was published by fooobar.com/questions/172025 / ....

+4
source

Try this ActiveXHelper

+4
source
//Initialise COM libraries CoInitialize (NULL); //The Component Category Manager implemented by System implements //this interface ICatInformation *pCatInfo=NULL; //Create an instance of standard Component Category Manager HRESULT hr=CoCreateInstance (CLSID_StdComponentCategoriesMgr , NULL, CLSCTX_INPROC_SERVER, IID_ICatInformation , (void **)&pCatInfo); //Increase ref count on interface pCatInfo->AddRef (); //IEnumGUID interface provides enumerator for enumerating through //the collection of COM objects IEnumGUID *pEnumGUID=NULL; //We are intersted in finding out only controls so put CATID_Control //in the array CATID pcatidImpl[1]; CATID pcatidReqd[1]; // Want only my Plugin Category pcatidImpl[0]=CATID_MyPlugin; pcatidReqd[1]=CATID_MyPlugin; // Want all Active X Control //pcatidImpl[0]=CATID_Control; //Now enumerate the classes ie COM objects of this type. pCatInfo->EnumClassesOfCategories (1, pcatidImpl, 0, pcatidReqd , &pEnumGUID); //Enumerate as long as you get S_OK CLSID clsid; while( (hr= pEnumGUID->Next( 1, &clsid, NULL ))==S_OK ) { BSTR bstrClassName; //Get the information of class //This is what MSDN says about the parameters /*----------------------------------------------- USERCLASSTYPE_FULL The full type name of the class. USERCLASSTYPE_SHORT A short name (maximum of 15 characters) that is used for popup menus and the Links dialog box. USERCLASSTYPE_APPNAME The name of the application servicing the class and is used in the Result text in dialog boxes. -----------------------------------------------*/ OleRegGetUserType (clsid,USERCLASSTYPE_FULL,&bstrClassName); CString strControlName(bstrClassName); //Add string in our listbox m_list1.AddString (strControlName); } //we are done so now release the interface ptr pCatInfo->Release (); CoUninitialize (); 
0
source

All Articles