問題タブ [ole]

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.

0 投票する
1 に答える
2223 参照

java - JXL および Apache POI の解析は、画像オブジェクトが添付されている場合に優れています

JXL と Apache POI を使用して Excel ファイルからデータをロードしようとしましたが、これまで JXL メカニズムは正常に機能していました。ファイルに画像を埋め込んでも。

解析できないソースからファイルを受け取りました。POI で次の例外が発生します。

jxlを使用すると、範囲外のインデックスを取得します

ファイルは Excel に読み込まれますが、オープン オフィスには読み込まれません。生データで確認できる唯一のものは、Adobe XMP Core 4.1 関連のオブジェクトです...これが問題の原因のようです。画像を削除すると正常に動作します。 ... 別の jpg をその罰金に貼り付けると。

これを無視する方法はありますか?このファイルを解析するにはどうすればよいですか。

ありがとう。

0 投票する
1 に答える
4076 参照

perl - Perlから読み取り専用でWord文書を開くにはどうすればよいですか?

ファイルが別のユーザーによってロックされている場合にポップアップするダイアログを回避するために、オブジェクトを読み取り専用モードで取得できるようにするメソッドはPerl内にありますか?

0 投票する
2 に答える
1027 参照

vba - Word COM/OLE/VBA: ドキュメントをメモリに保存/メモリからロードする方法は?

「Microsoft Office Word™ 2003 Visual Basic リファレンス」によると、Document オブジェクトはディスクからファイルをロードするか、ファイルをディスクに保存することしかできないようです。ドキュメントをメモリに保存したり、メモリからドキュメントをロードしたりできますか? ドキュメントをディスクファイルではなくデータベースに保存する必要があるためです。デルファイを使用しています。

前もって感謝します。

0 投票する
4 に答える
8071 参照

vba - stdole.StdPicture を別のタイプに変換するにはどうすればよいですか?

報奨金を受け取るには、動作するコードで回答を提供してください。ありがとう。

タイプ vbPicTypeIcon の stdole.StdPicture オブジェクトがあります。Type vbPicTypeBitmap に変換する必要があります。プロジェクトの制約により、Win32 または VBA を使用してこれを行う必要があります。ファイルのアイコンをコマンド バー ボタンにロードしようとしています。これが私がこれまでに持っているものです。それは素敵な黒い四角を生成します:)私はグラフィックスランドに本当に慣れていないので、それが基本的な質問であれば許してください。

0 投票する
2 に答える
800 参照

excel - Excel OLE - Excel がアプリケーションに埋め込まれている場合、.NET COM アドインの動作が異なる

COM Shim dll を使用してそれ自体を Excel に読み込む .NET (C#) アドインがあります。Excel が正常に実行されている場合、アドインは問題なく正常に動作します。アドインは、さまざまなコマンドを実行するために使用される独自のカスタム ツールバーを Excel に表示します。

Excel を別のアプリケーション (DSOFramer など) に埋め込むと、アドインの動作がおかしくなり始めます。ツールバーのボタンを無効にすると、Visible プロパティを設定した後に再び有効にならないようです。また、Application::Selection オブジェクトが NULL であるため、「オブジェクト参照が設定されていません」というエラーが多数発生します。これは、Excel が正常に実行されている場合には発生しません。Application::GetAddIns() メソッドが呼び出されると、パーミッション エラーが発生することもあります。

ここで何が起こっているのかわからず、Excel が他のアプリケーション内に埋め込まれている場合の Excel COM アドインの動作を説明する記事を見つけることができませんでした。

0 投票する
1 に答える
701 参照

.net - OLEオートメーションを使用して64ビットアプリに32ビットコントロールをロードするとどうなりますか?

私が担当している.NETアプリケーションは、32ビットCOMコンポーネントとしてのみ使用可能なサードパーティのコントロールを使用しています。コンポーネントとアプリを64ビットモードで連携させる方法を模索している間、壁に頭をぶつけてきました。コントロールベンダーからいくつかの助けを得ました-彼らはすぐにコンポーネントの64ビットバージョンを提供する予定はありませんが、WebBrowserコントロールを使用してコンポーネントをロードするC#ソリューションといくつかの楽しいOLEを使用するC++ソリューションを添付しましたWebBrowserからコントロールのインターフェイスへの参照を掘り下げるコード。

幸いなことに、コードは本来の機能を果たします。コンポーネントは64ビットソリューション内に正しく読み込まれます。ATLに関する古い知識を浚渫して、C ++ソリューションを調べ、制御インターフェイスをC#に取得する方法を見つけます。

私の懸念は、この構成を十分に理解していないため、アプリがどのような問題にさらされている可能性があるかを判断できないことです。誰かがこの性質の何かをしましたか?私の主な懸念は、不思議なクラッシュが発生し始める可能性があることです。これは、最終的に32ビットコントロールによって値が変更されたことにまでさかのぼり、最初の場所に戻ります。

参考までに、コントロールはSolidworksのEModelViewControlであり、EDrawings軽量CADビューアに含まれています。自動化のセットアップは少し興味深いものですが、特に複雑なコントロールではありません。

0 投票する
1 に答える
939 参照

c++ - CFSTR_FILEDESCRIPTOR/CFSTR_FILECONTENTS 'ファイルのコピー' ダイアログが表示されない

CFSTR_FILEDESCRIPTOR/ CFSTR_FILECONTENTSを使用して仮想ファイルをクリップボードにコピーするコピーアンド ペーストをサポートする名前空間拡張があります。ただし、「ファイルをコピーしています...」進行状況ダイアログは表示されません。

コピー操作が完了するまで、エクスプローラーがハングしているように見えます。

進行状況ダイアログを機能させる方法に関する提案はありますか?

ありがとう、ムリドゥル。

0 投票する
1 に答える
1786 参照

python - Python を使用して MS Office ドキュメントに埋め込まれたオブジェクト?

Python を使用して MS Office ドキュメントに埋め込みオブジェクトを作成するにはどうすればよいですか?

最初のバージョンの OLE で行っていたように、特別なことは何も必要ありません。アプリケーションから MS Word などにコピー アンド ペーストすると、Word ドキュメントにオブジェクトが埋め込まれ、それを 2 倍にできます。クリックしてアプリケーションのコピーを開き、オブジェクトを編集します。

これは Python/PyQt アプリケーションから実行できますか (おそらく pythoncom を使用していますか?) 私が始められる簡単な例はありますか?

0 投票する
1 に答える
1394 参照

com - COM インターフェイスを進化させるには?

COM は、新しいコンポーネントまたはアプリケーションをリリースする際に下位互換性を可能にすることが知られています。これが可能なのは、COM のインターフェイスが安定しているためです。つまり、変更されません。

COM インターフェイスをバージョンからバージョンへ進化させる方法について説明している参考文献や本を探すのに苦労しました。

以下は私の要件です。

OLE 自動化によって駆動できるアプリケーションがあります。このアプリケーションの新しいバージョンは、古いバージョンと並行してインストールできます。

このアプリケーションの COM クライアントは、バージョンに依存しない PROGID を使用して、アプリケーションの最新バージョンで動作するか、バージョンに依存する PROGID を使用して、アプリケーションの特定のバージョンで動作します。

COM オートメーションへの変更によって、どのクライアントも壊れないようにする必要があります。

例を見てみましょう:

いくつかのインターフェースを拡張するこのアプリケーションのバージョン 2.0 を公開したいとしましょう。バージョン 2.0 に対する私の素朴なアプローチは次のとおりです。

これはこれを行う正しい方法ですか?

クラス Application10 および Application20 をレジストリに追加して、スクリプト クライアント用に異なるバージョンのアプリケーションをインスタンス化する可能性を追加する必要がありますか?

タイプ ライブラリのバージョンとGUIDを変更するのは正しいですか?

バージョン 2.0 の IDocument には新しい IID があります。IApplication.ActiveDocument で IDocument を引き続き使用できますか?

異なるバージョンの Windows レジストリにコクラスまたはインターフェイスを登録するにはどうすればよいですか?

WIN32-API 以外の ATL やその他のライブラリは使用していないことに注意してください。

これに関する情報 (書籍、参考文献など) をどこで見つけることができるか知っている場合は、1 つ提案してください。

よろしくお願いします。

0 投票する
3 に答える
2393 参照

perl - Win32::OLE で HWND から COM オブジェクトを取得するにはどうすればよいですか?

Perl では、ウィンドウ オブジェクトの HWND がある場合、そのハンドルを使用してその COM オブジェクトにアクセスするにはどうすればよいですか? 私は Win32::OLE を見ましたが、最も近いGetActiveObjectものはクラスを期待するメソッドでした。