[id:kkamegawa:20091202:p1]にegtraさんからコメントいただきました。ありがとうございます。
そのhHandleへのポインタを渡したければ、Class1::Test内で、pin_ptr
phHandle = &hHandle;と、確かpin_ptrに入れればHANDLE*を引数に取るOpenPrinterに渡せるようになると思います。refクラスのオブジェクトはGCによってメモリ上の位置が移動することがあるので、一時的にpin_ptrで固定しないといけないというわけです。
なるほど、確かにrefクラスのオブジェクト内ではマーシャリングが必要な理由ではありますが、「ヘッダファイルで宣言された(マーシャリングが必要な)変数が自動マーシャリングの対象にならない」という理由とはちょっと違うんじゃないかなと思います。というわけで、feedbackで一件登録してみました。よければvoteを…といっても、C++/CLIはWinForm同様もう強化されないんじゃないかなーとも思うのですが。
C++/CLIの自動マーシャリングを強化してほしい