- PR -

DirectPlayVoiceServerの初期化

1
投稿者投稿内容
未記入
大ベテラン
会議室デビュー日: 2005/08/25
投稿数: 145
投稿日時: 2007-04-24 15:18
C++の本を参考にC#で音声サーバを作成しようと思っております。

C++ではまずサーバを初期化する際に

IDirectPlayVoiceServer*lpDirectPlayVoiceServer;

hr=CoCreateInstance(CLSID_DirectPlayVoiceServer,NULL,CLSCTX_INPROC_SERVER,IID_IDirectPlayVoiceServer,(void**)&lpDirectPlayVoiceServer);

IUnknown *punk;

lpDirectPlay8Peer->QueryInterface(IID_IUnknown,(LPVOID*)&punk);

hr=lpDirectPlayVoiceServer->Initialize(punk,myVoiceHandler,NULL,NULL,0);

punk->Release();

このようにすればサーバを初期化できると書かれております。

これをC#でやるにはどうしたらよいのかご存知の方教えていただけたら幸いです。

ちなみに僕は
private Microsoft.DirectX.DirectPlay.Voice.Server mddvs;
object ob = null;
mddvs = new Microsoft.DirectX.DirectPlay.Voice.Server(ob);
よくわからないもながらこのような感じでできるのではないかと予想し
デバッグしてみましたが、obのところはnullではだめでした。
obに何を指定すればよいのかご存知の方いらっしゃいましたら
ぜひ、教えていただければうれしいです。
未記入
大ベテラン
会議室デビュー日: 2006/12/15
投稿数: 157
投稿日時: 2007-04-24 15:51
object ob = null;

object ob = new object();
ぢゃダメ?
未記入
大ベテラン
会議室デビュー日: 2005/08/25
投稿数: 145
投稿日時: 2007-04-24 16:23
アドバイスありがとうございます。
ためさせて頂きましたが、だめでした。
やはり、何か指定しなきゃいけないようです。
そりゃそうですよね。
コールバック関数とかぜんぜん未設定ですから。
ただ、それをどうやってというのが不明です。
Hongliang
ぬし
会議室デビュー日: 2004/12/25
投稿数: 576
投稿日時: 2007-04-24 17:15
C++ のソースには存在しているのに、移植したコードには未出なインスタンスが存在しますよね? 引数に渡してるそのものですが。
QueryInterface は要はキャストですから気にする必要はないです。

// Server に Initialize メソッドがないって事はイベントに登録しとけって事かしらん?

[ メッセージ編集済み 編集者: Hongliang 編集日時 2007-04-24 17:17 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-04-24 18:38
本題から反れますが、Microsoft.DirectX.DirectPlay.Voice.Server って推奨されていましたっけ?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
未記入
大ベテラン
会議室デビュー日: 2005/08/25
投稿数: 145
投稿日時: 2007-04-26 07:41
Hongliangさん。
QueryInterface は気にする必要はないのですね。
ありがとうございます。

じゃんぬねっとさん。
そうです。推奨されておりません。
そのため、機能はございますが、ドキュメントなどがほぼ皆無のため
難儀しており、質問させていただいたしだいです。
1

スキルアップ/キャリアアップ(JOB@IT)