どうも。いろいろ意見ありがとうございます。
>>102さんの言うとおり、ヘッダを構造体にしたらいけました。
やろうとしたことは、CGOBJを中心にCOMみたいなことして
いろんな機能を使用、追加できるクラスを作ろうと思ったのです(DirectShowに近い)。
3Dとかになると、同じ座標使っても、
さまざまなポリゴン表示(トーンとかキューブとか)や
ビルボード等、いろいろな表示方法があったり、
他にも、いろんなあたり判定、ライティング座標、etc…
それを初期化の時に、設定しやすく(素材の共有もできる)、そして
使用方法はCGOBJのメンバを呼ぶだけ。
という。そんなものを作ろうとしているのです。
ソースは94さんみたいなものです。で、
(void *)キャストしたmat(94のソースで言うとFoo)を
(void *(CGOBJ))mat(this);//
D:\[Development]\testCOBJ\main.cpp(35) : error C2066: 関数型へのキャストは不正です。
MSDNで見ると
コンパイラ エラー C2066
関数型へのキャストは不正です。
オブジェクトが関数型にキャストされましたが、このキャストは許されていません。
ANSI C では、関数へのポインタとデータへのポインタの間でキャストを行うことは許されていません。

あばば。
今見ると、キャスト方法間違ってたかも。
でも、ヘッダを構造体にすることにより、わかりやすくなったので、
それがいいです。
長文かつ、読みにくい文章ですいません。
いろいろありがとうございました。