Jetzt hänge ich daran fest, dass VisualC++ ein Keyword mehr hat als GCC "__uuidof". (Ich hab ein wenig den Eindruck, durch die Einführung solcher Dinge will Microsoft bewusst verhindern, dass man unter GCC mit DirectX programmieren kann).
MSVC hat sogar viele Keywords mehr, wobei man eigentlich besser sagen sollte er hat eben andere spezielle Keywords, denn der GCC hat genauso seine Spracherweiterungen.
__uuidof() liefert dir jedenfalls den GUID des Typs des Ausdrucks darin. Es handelt sich dabei um eine microsoftspezifische Erweiterung (Zeug das mit __ beginnt ist immer irgendwas implementation defined) die dazu gedacht ist den Umgang mit COM zu erleichtern. Auch wenn ich, wie schon gesagt, keinen wirklichen Grund sehe weshalb man für Windowsprogrammierung GCC verwenden sollte (im Gegenteil) ist das natürlich kein Grund warum man es nicht trotzdem tun kann. Da der GCC kein __uuidof() kennt (weil das eben eine rein windowsspezifische Angelegenheit ist) musst du das was __uuidof() dir abnehmen würde eben selber machen, nämlich den GUID von ID3D10Texture2D raussuchen und dann an die Funktion übergeben.
Diese Dinge dienen jedenfalls alles andere als dem Zweck zu verhindern dass man mit GCC DirectX programmieren kann...