ajitatif.com - gökalp gürbüzer'in kişisel web sitesi
Tuesday, January 19, 2010
İşbu sitenin sahibi Gökalp GÜRBÜZER 18 Ocak 2010 itibariyle Hürgeneral rütbesine terfi edilmiş olup, Maltepe / İstanbul'da Gürbüzer ailesi konutuna ataması yapılmıştır.

En rahat askerlik, bitmiş olandır

Tuesday, January 19, 2010 9:23:16 AM (GTB Standard Time, UTC+02:00) | Comments [1] | AdSense | ajitatif.com | Askerlik | ASP.NET | ATL | Banu Avar | Blograzzi | C++ | Çanakkale Savaşları | D880 | dasBlog | English | Etkinlik | google | Güncel | hakia.com | Internet Explorer | İstanbulluluk | Jargon | Java | JTPD | JTS | Kişisel | Kitap | Kronik Acemilik | Linux | Makale | Memleket Kurtarmaca | MySql | NetBeans | Oktay Sinanoğlu | Pardus | ProjeCep | Samsung | ScoopBar | Software Development | Tarih | Tavsiye | Tiyatro | Tiyatro Sporu | Türkçe | Ürün İnceleme | Veritabanı | Vosvos | VS 2005 | Web | Web Development | Web Geliştirme | Wikipedia | Windows | XUL | Yazılım | Yazılım Geliştirme#
Monday, October 15, 2007
This time I wanted to create a brand new ActiveX Control for myself and let the Wizard of Visual Studio 2005 do it. Hell, it didn't compile:

    "CComObjectRootEx: Base class undefined"

If you encounter this one ever, just inlude the required ATL headers, and put a using namespace ATL; just below the #include statements.
Monday, October 15, 2007 10:55:03 AM (GTB Daylight Time, UTC+03:00) | Comments [1] | ATL | C++ | English#
I built the Toolbar last friday and it worked just fine but today the CoCreateInstance for my COM object (which is a User Broker process to make the toolbar work on Windows Vista - see [1] for the reason) returned 0x80020008 (Bad Variable Type). The build had no errors but when the toolbar called the CoCreateInstance() method it returned "Bad Variable Type". This took my whole day to figure out (maybe I'm just low on documents or XP) but I solved the problem.

Here is the code that generated the error:
    ATL::CComPtr pub;
    hr = pub.CoCreateInstance(CLSID_UserBrokerProcess,NULL,CLSCTX_LOCAL_SERVER); // hr = 0x80020008 "Bad Variable Type"


Everything is fine with the code, but just see this method declaration in the IDL file for my IUserBrokerProcess:
    [id(1234), method SetBinaryValue"), local] HRESULT SetBinaryValue([in] BSTR bstrKeyName, [in] BSTR bstrKeyValueName, [in] const void * pValue, [in] ULONG nBytes);

Anything amiss?? It seems the Interface Definition Language does not support
void as a valid type. I had to comment all my methods in the .idl file, implementing .h file and its .cpp file and uncomment the methods one by one to debug this situation. I just changes the void to BYTE and everyting is fine now. Well not everything maybe, but it doesn't cry for 0x80020008 anymore.

[1] MSDN Technical Articles: Understanding and Working in Protected Mode Internet Explorer
Monday, October 15, 2007 10:53:28 AM (GTB Daylight Time, UTC+03:00) | Comments [1] | English | Software Development | ATL | C++#
Search
Archive
Links
Categories
Admin Login
Sign In
Blogroll
 aychulus.blogspot.com
Kuzen Ayşegül'ün blog'u
[Feed] volkanvardar.com
Volkan Vardar kişisel blog ve portföy sitesi
Themes
Pick a theme: