HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2019
1125
とあるプログラマ#comfunc のインデックスとは & Direct2D4解決


とあるプログラマ

リンク

2019/11/25(Mon) 16:51:00|NO.88925

#comfuncの第2引数である「メソッドインデックス」というのが何の値であるのか、どこを参照するべきなのかが調べても分からなかったので教えていただきたいです。


また 現在Direct2Dによる描画を試みているのですが、D2D1CreateFactoryの第2引数などのriidに渡す内容が分からないので教えていただきたいです。

https://blog.goo.ne.jp/hiro239415/1
こちらのサイトのmod_DWMes.hspを参照すると値は固定のようですが、この値がどこから(d2d1.hなど)取得された値なのか分からないです。



この記事に返信する


ooo

リンク

2019/11/28(Thu) 06:46:14|NO.88932

以下のサイトくらいしか説明が見当たらないですが理解するにはcomの内部構造についての知識が必要と思います。
http://chokuto.ifdef.jp/urawaza/com/com.html
基本的にVisual C++のヘッダを見て調べるくらいか、それに付属のOleView.Exeを見るくらいしかないと思います。

>D2D1CreateFactoryの第2引数などのriidに渡す内容が分からないので教えていただきたいです。
詳しくないですが見たところID2D1FactoryのインターフェースIDのポインタを渡すみたいです。
どこかのヘッダにIID_ID2D1Factoryとして{06152247-6F50-465A-9245-118BFD3B6007}が定義されていると思います。



とあるプログラマ

リンク

2019/11/28(Thu) 22:11:34|NO.88937

OleViewというのを試してみたんですけど、Direct2D系のインターフェイス等は見つかりませんでした。(探し方が悪い?)

それと上記URLのサンプルには

IID_ID2D1Factory_(0) = 0x6152247, 0x465a6f50, 0x8b114592, 0x7603bfd D2D1CreateFactory 0, IID_ID2D1Factory_, 0, pv
と書かれていて、「0x6152247」の部分はIID_ID2D1Factoryの最初の部分と一致したんですが、残りの3つはネットやヘッダを検索しても見つからないんですよね。
インデックスについてもヘッダに書かれてる順番というわけでもない感じですし、よく分からないですね…

HSPでDirect2D・COM系を扱うのはあまりいい方法ではないんでしょうかね。
機能がGDI+よりも高い・GDI/GDI+の後継ということでDirect2Dを導入しようと思ったのですが、難しいのですかね…



ooo

リンク

2019/11/29(Fri) 06:22:28|NO.88942

>OleViewというのを試してみたんですけど、Direct2D系のインターフェイス等は見つかりませんでした
OleViewで全部見れわけではないです
そういう場合はヘッダファイル調べるしかありません。

>「0x6152247」の部分はIID_ID2D1Factoryの最初の部分と一致したんですが、残りの3つはネットやヘッダを検索しても見つからないんですよね。
インターフェースIDは構造体になってることは紹介したページに乗ってると思います。
HSPでは構造体を扱えないため整数の配列で代用します。
配列に変換したのがその値です。

>インデックスについてもヘッダに書かれてる順番というわけでもない感じですし、よく分からないですね…
継承とかの仕組みがわかってないと理解が難しいと思います。

>HSPでDirect2D・COM系を扱うのはあまりいい方法ではないんでしょうかね。
使う人の知識や理解度によるでしょう。



とあるプログラマ

リンク

2019/11/30(Sat) 10:44:57|NO.88955

ちょっとCOM系はまだ自分には難しいような気がしてきましたね…
一旦描画はGDI+で様子見てCOM系は他のサンプルで勉強し、それでもD2Dのほうが良い気がしたらその時また考えたいと思います。

ありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.