タイトル : Re: USBカメラの解像度の切り替え 投稿日 : 2007/02/18(Sun) 10:47 投稿者 : K.J.K.
> そのサンプルコードは具体的にどんな感じになるのでしょう? 具体的に、といっても、元になるインターフェースなどをどのように 定義してあるのか、にもよりますよね。 Dim CameraFilter As IBaseFilter Dim EnumPins As IEnumPins Dim BasePin As IPin Dim StreamConfig As IAMStreamConfig Dim MediaType As AM_MEDIA_TYPE Dim MediaTypeCount As Integer Dim LoopCounter As Integer Dim BufferSize As Integer Dim Buffer() As Byte とでもしてあり、 「CameraFilterが該当するフィルタを指している」 のならば、例外処理やCOMの参照カウント関連の処理などを省略すると、だいたい、 EnumPins = CameraFilter.EnumPins() Do While (1 = EnumPins.Next(1, BasePin)) ' ここで該当するピンを特定する処理 Loop ' 以降、BasePinには特定されたピンが入っているとする。 StreamConfig = BasePin Call StreamConfig.GetNumberOfCapabilities(MediaTypeCount, BufferSize) For LoopCounter = 0 To MediaTypeCount - 1 Call StreamConfig.GetStreamCaps(LoopCounter, MediaType, Buffer) ' ここで該当するMediaTypeを探すなり、配列などにキャッシュ ' しておくものとする。 Next LoopCounter ' 以降、MediaTypeには特定された望ましいものが入っているとする。 Call StreamConfig.SetFormat(MediaType) というような手順になるのでは。まぁインターフェースの定義しだいでは 全く異なる書き方になるでしょうけど、そこはいろいろ自分で試してみて ください。 > SDKのドキュメントを見ていてもC++でVB.NETでどう表現するのか > さっぱりわかりません。 ならば、諦めるとか。 |