I'm actually trying to queryInterface() on an object, in order to retrieve its IAAFComponent2 capabilities. While compilation is okay, linking fails ( unresolved external link _IID_IAAFComponent2 )
I've been looking in libs for references to that in all files of the sdk, to no avail.
After getting that error, i tried compiling the sdk in order to be sure of the domain of the error (I? compiler? sdk?), but files are missing (see other thread)
Did i miss something obvious there too?
Strange... there's something slightly unusual here inasmuch as those constants (IID_IAAFComponent2 etc) are defined in a C source file that gets included as #include "AAF_i.c" (in other words, not #include "AAF_i.h", as you might expect). However, it should still work.
If you're compiling with Visual C++, open the project's File View and look at the branch called "comapi files". You'll see that it's dependent upon the "Impl" branch - then immediately underneath, you'll see a source file called "AAFCOM.cpp". This file should be #including AAF_i.c which, in turn, should contain IID_IAAFComponent2.
Thanks a bunch.
Including that .c (yerk...) file was enough to make the link succeed.
"Yerk" indeed. While #including AAF_i.c may make the problem go away, it's a guarantee of different problems in the future. Your application should resolve references to _IID_AAF* symbols by linking to the AAFIID.LIB static library. The file AAF_i.c is an implementation file private to the SDK and shoul not be included by your application.
Without more details I can't tell you what the correct solution is. It may be as simple as rebuilding the MakeSDK target - one way that this problem might arise would be using an AAF.h and an AAFIID.LIB that aren't in sync with each other.
My project already links to that lib, which is even more perturbing.
Thanks for the tip, i'll try your suggestions as soon as i eject that ugly code of mine when i'll make a clean implementation of my program.