問題タブ [clsid]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
directshow - DirectShow の外で DirectShow フィルターを使用していますか?
現在、Windows Media Foundation を扱っています。ただし、Microsoft H.264 デコーダーに問題があり、カスタム フォーマット用のデコーダーが欠落しているため、CLSID を使用して直接 DirectShow デコーダーをインスタンス化し、その周りに IMFTransform を公開するプロキシを構築することが可能かどうかを知りたいです。 Media Foundation のデコーダーを取得します。だからここに私の質問があります:
Directshow フィルター (できればデコーダー) を直接インスタンス化し、それらをデコードに使用して (つまり、いくつかの圧縮フレームを配置し、非圧縮フレームを取得して) MFT を作成できますか?
CLSID を使用してフィルター自体をインスタンス化する方法を知っています。ただし、実際のデコード機能の使用方法はわかりません。
どんなアイデアでも、ヒントでも、リンクでも何でも構いません。ありがとう、
J.
visual-c++ - MSVCのようなCLSID変数名を取得する方法は?
プログラムをデバッグしているときにGUID変数にカーソルを合わせると、MSVCは変数名(CLSID_FilterGraphなど)と人間名(フィルターグラフオブジェクトなど)の両方を取得します。
2番目はHKCR\CLSID \ GUIDを見て実行しますが、変数名はどこから取得しますか?レジストリにはありません。
何か案は?
windows - レジストリに変更した独自の Com オブジェクトを作成する
レジストリの Internet Explorer CLSID 要素を変更したい: (HKEY_CLASSES_ROOT\CLSID{0002DF01-0000-0000-C000-000000000046} )
このエントリをコピーして GUID を置き換え、新しいエイリアスを作成することはできますか? 新しいエイリアスはどこで定義できますか? (後で、この Com オブジェクトを PowerShell で開きたいと思います)
com - COM TreatAs はどのように (そしていつ) 機能しますか?
Process Monitorvsjitdebugger.exe
を使用してレジストリ アクセスを調べていたところ、次の方法でレジストリにクエリを実行する場合があることに気付きました (一部の情報は省略されています)。
MSDN の TreatAs に関する情報は、元のサーバーの代わりに呼び出される別の COM サーバーの GUID を指定できることを示しています。
このキーに関する詳細情報を見つけることができず、自分の COM オブジェクトで使用することもできませんでした: 同じ COM オブジェクトの 2 つの異なる実装があります (2 つの別個の DLL で、2 つの別個の GUID を持っています)。 、そして私のプロセスがGUIDを介してオブジェクトを作成するとき、代わりに他のオブジェクトを作成したいと思います(TeatAsで指定されたGUIDを介して)。残念ながら、WindowsHKCU\Software\Classes\CLSID\{my-guid}\InprocServer32
は最初に TreatAs を探すのではなく、すぐに を照会しようとするようです。
私の質問は基本的に、TreatAs のルールについてです。いつ、どのように照会されるのですか?
c# - CLSID から ActiveX コントロールを動的にロードする
コンテンツに基づいて GUI フォームを生成するサードパーティのソフトウェア「スクリプト」を解析しています。C# プログラム内でスクリプトを読み取り、同様の出力を生成したいのですが、スクリプトの例を次に示します。
私が興味を持っているプロパティはBEGIN CONTROL
、BEGIN PROPERTY
これらが ActiveX コントロールの開始とそのプロパティを示しているためです。
私の質問: CLSID によってこの ActiveX コントロールをロードし、そのプロパティを設定するにはどうすればよいですか? Type.GetTypeFromCLSID
私が望むものと思われ、使用時に例外をスローしないActivator.CreateInstance(Type)
ため、有効なインスタンスを作成する必要がありますが、1 つのセットがプロパティであり、このコントロールを Windows フォームに「描画」するにはどうすればよいですか?
ありがとう。
c++ - GDI+ には標準のイメージ エンコーダー CLSID がありますか?
GDI+Image::Save
メソッドでは、使用するエンコーダーを指定するために CLSID パラメーターが必要です。ドキュメントは、image/jpeg や image/png などの特定の MIME タイプに関連付けられたエンコーダーを取得するためのサンプル コードを示しています。ただし、中間結果をディスクに保存する1行のデバッグ支援をサポートするためだけに、半ページ関数をコピーするという考えにはうんざりしています。
標準エンコーダー用の標準 CLSID のリストはありませんか? そのようなリストはどこにありますか? Microsoft のインクルード ファイルを検索しても見つかりませんでした。
c# - COMインターフェイスPhotoshopの互換性の問題
Photoshop用のシンプルな.NETC#COMアプリケーションを作成しています。これは、CS2からCS5までのすべてのバージョン、およびその間のすべてのバージョンで実行するように設計されています。同じアプリケーションがJavaScript形式でも存在し、バージョン固有の機能の実装を回避したため、前述のすべてのバージョンで動作します。
私たちが遭遇した問題は、COMインターフェースに関連しています。たとえば、アプリケーションがPhotoshopCSxのInterop.PhotoshopDLLを使用してコンパイルされている場合、PhotoshopCSyでは実行されません。これは、レジストリCLSIDがPhotoshopの各バージョンに固有であり、コンパイルしたものとは異なるバージョンのPhotoshopがインストールされているシステムで実行した場合、アプリケーションが正しいCOMインターフェイスDLLを見つけられないためと思われます(両方のアプリケーションを想定) 32ビットです)。
これが本当に問題である場合、機能がバージョン間で異なる可能性があるという事実を無視して、PhotoshopバージョンCSxのCOMインターフェイスをCSyCLSIDに再登録できるかどうか疑問に思っています。
より具体的な情報は次のとおりです。
プライマリPhotoshop.ApplicationCLSIDは、レジストリの次の場所にあります。HKEY_CLASSES_ROOT \ Photoshop.Application \ CLSIDこのCLSIDは、アプリケーションが構築されたCLSIDと一致する必要があります。たとえば、このIDはCS5とCS5.1で異なります。
今日の唯一の解決策は、Photoshopの特定のバージョン用にアプリケーションの特定のバージョンをビルドすることです。これは、特定のアプリケーションバージョンがインストールされている場合にのみ可能です。
取得したエラーコードは0x80040154、「CLSID{116EE066-135E-4F63-8D0E-78F62705FBFC}を持つコンポーネントのCOMクラスファクトリの取得に失敗しました」です。このアプリケーションはCS5.1で構築されましたが、CS5.04で実行されたため、COMインターフェイスが見つかりませんでした。このCLSIDはCS5.1に固有です。結論として、特定のバージョンでアプリケーションを実行できるようにするには、CS5.04のCLSIDと一致するようにCOMインターフェイスを再登録する必要があります。これは可能ですか、それとも別の方法がありますか?
私たちがこの問題について得ることができるどんな助けやヒントも非常にありがたいです。
c# - c#.net の OpenFileDialog.Showdialog でエラーをスローする
XP マシンで Windows アプリケーションを開発しています。私の 1 つのフォームには、選択したファイルを openfiledialog box からのパスで表示するテキスト ボックスが 1 つあります。もう 1 つのコントロールは、openfiledialog ボックスを呼び出すボタンです。
ボタンをクリックして開いているダイアログボックスを呼び出すと、次のエラーが発生します
フォームの残りの部分には、データ グリッドやドロップダウンなどの別のコントロールが含まれています。
この問題を解決するために私を助けてください
事前にサンクス。
よろしく、 スダルシャン
アップデート
これがボタンクリック時の私のコードです
dll - regsvr32 はレジストリにエントリを作成しません
DLL の登録に問題があります。私のOSはWindows 7(x64)です。
私は2つの異なる方法でそれを行います:
1) regsvr32 を使用します。「DllRegisterServer ... successeed」というメッセージが表示されますが、レジストリに CLSID が見つかりません。(そして、この CLSID を使用してコンポーネントのインスタンスを作成しようとすると、「クラスが登録されていません」というエラーが表示されます)。作成した)。
2) DLL を明示的にロードし、DllRegisterServer を呼び出します。この場合、DllRegisterServer は S_OK を返しますが、それでもレジストリで CLSID を見つけることができず、「クラスが登録されていません」というエラーが発生します。
コードが正しいと確信しているので (私の OS だけでは動作しないため)、問題は OS にあるようです。誰かがそのような問題に直面しましたか?
c++ - COM:適切なCLSIDを取得します
CLSIDに少し問題があります。
paramにREFCLSIDを持つ(フックされた)関数があります。だから私はこのパラメータを出力したいと思います。
やった:
しかし、「output.txt」には8文字の文字列がありますが、111111-2222-3333-4444-000000000000のような文字列が必要です。
だから誰かがアイデアを持っているなら...
ありがとう。