問題タブ [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 投票する
2 に答える
8740 参照

c# - OpenOffice で簡単な差し込み印刷を行う方法

C++、VBScript、VB.Net、または OLE またはネイティブ API 経由の C# を使用して、OpenOffice で簡単な差し込み印刷を行う必要があります。利用可能な良い例はありますか?

0 投票する
5 に答える
5644 参照

c++ - 最適な時間で _variant_t から char* を取得する

これが私がスピードアップしたいコードです。ADO レコードセットから値を取得し、char* に変換しています。しかし、これは遅いです。_bstr_t の作成をスキップできますか?

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

c++ - Win32 OleGetClipboard() 関数が CLIPBRD_E_CANT_OPEN を返すのはなぜですか?

Win32 API 関数 OleGetClipboard() が失敗して を返すのはどのような状況CLIPBRD_E_CANT_OPENですか?

背景: Firefox のバグ修正を支援しています。詳細はこちら:

バグ 444800 - ロスレス形式でクリップボードから画像データを取得できない

私が作成を手伝った自動テストでは、OleGetClipboard() が失敗してCLIPBRD_E_CANT_OPEN. これは予想外であり、Windows クリップボードから画像データを取得する Firefox コードは、その呼び出しの成功に依存しています。

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

c# - なぜ OleDbCommand.Prepare() が必要なのですか?

次のように、保存されたクエリ(「UpdatePaid」という名前、3つのパラメーター)を介してMSAccessテーブルに対応するデータグリッドとアダプターを使用しています。

それは正常に動作します...しかし、本当に奇妙なことは、 odc.Prepare()呼び出しを入れるまでうまくいかなかったことです。したがって、私の質問は次のとおりです。OleDb ストアド プロシージャ/クエリを操作するときに、常にそれを行う必要がありますか? なんで?また、SqlDbCommand を使用して同じことを行う必要がある別のプロジェクトも予定されています...それらも使用する必要がありますか?

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

c# - OLEによるExcelの自動化-ダイアログボックスエラーの抑制/キャッチ?

C#プログラムとOLEを介してExcel2007のデータ接続を更新します。ほとんどの作業は、単一のWorkbooks.RefreshAll()ステートメントによって実行されます。

スプレッドシートを更新する性質と同様に、さまざまな問題が発生する可能性があります。更新プロセス中に、プログラムは「ファイル'|'からデータを読み取ることができません」に関するダイアログボックスのエラーメッセージと、「ピボットテーブルレポートの重複」に関するメッセージを表示できます。これらは両方とも致命的であり、これらのエラーをキャッチして、エラーでプログラムを終了できるはずです。

残念ながら、私はこれらの問題を見つけることができないようです。代わりに、私の自動プログラムは、私がやって来てダイアログでEnterキーを押すまで座っています。

ユーザーに表示するのではなく、Excelダイアログボックスに表示されるエラーをプログラムでキャッチできるかどうか誰かが知っていますか?

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

windows - SDIのOLEクライアント。ツールバーを追加するにはどうすればよいですか?

OLEを使用してExcelをロードしているSDIがあります。これにツールバーを追加して、非常に目立つ明確な「インポート」ボタン(およびその他のいくつか)を使用できるようにします。追加したツールバーMFCはすべて非表示になるか、Excelがアクティブになるとインターフェイスから削除されます。Excel Oleアイテムがアクティブになったときに、ツールバーをアップしてインターフェイス上に維持する方法はありますか?

FloatControlBarExcel OLEアイテムが初期化された後に呼び出しを試みましたが、効果がありませんでした。メニュー(そのままで正常に動作する)をツールバーにねじることを考えましたが、左側にドッキングする必要があり(要件)、コマンドの大きくて目に見えるグラフィック描写が必要です...そして私はしていませんそれを行う方法を見つけました。classはグラフィカルなメニュー項目を許可しますが、私はmenuコマンド自体を(メッセージテーブルでCMenu取得する以外に)多くのことを行う方法を見つけていません。commandid

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

php - 引数としてOLE_COLORを使用してPHPからCOM関数を呼​​び出す方法は?

COM 相互運用拡張機能を使用して、PHP から COM オブジェクトを呼び出そうとしています。1 つの関数は、引数として OLE_COLOR を必要としますか? この種の値を PHP から渡す方法はありますか?

単純な整数値を渡そうとしましたが、成功しませんでした。

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

windows - Excel をダイアログに埋め込むには ActiveX コントロールが必要です

「Excelからのインポート」機能を構築しています。MFC 以外のアプリから呼び出される DLL 内にある必要があります。ユーザーが選択ボックスをドラッグして (セルを選択するために) スプレッドシートの画像を提供し、[インポート] ボタンをクリックすると、適切な処理が行われる必要があります。スプレッドシートの起動に問題があり、ボタンが隣接していて、DLL で発生する。

DLL 内で MFC ダイアログのルートをたどりましたが、ダイアログのウィンドウで Excel 用の OLE クライアントを起動しようとしてブロックされました。OLE を使用して Excel を表示するために見つけたサポートのみが SDI を必要としていました。自動化機能を機能させることができ、セルを読み取って、ダイアログにそれらの「偽の画像」を描画することができました...しかし、それは私の要件に準拠していないのではないかと心配しています.

ということで、SDIを作成してみました。Excel を OLE クライアントとして起動する SDI を作成できました。「選択変更」イベントを処理し、必要なセル データに移動できました。この時点で私は2つのアイテムに失敗しました:

  1. この SDI を MFC DLL で機能させることができませんでした。AfxGetThread が null ではないと主張して、CWinApp コンストラクターでクラッシュします。「theApp」を、エクスポートされた 1 つの DLL 関数内でローカルにスコープされるように移動しましたが、それでも機能させることはできませんでしたが、別の症状でした: AFX_MANAGE_STATE(AfxGetStaticModuleState( )); DLL 関数をエクスポートするには、それを使用しないと、OnInitInstance が入力されませんでした。アプリの Run() 関数への呼び出しを追加しようとしましたが、役に立ちませんでした。問題が何であるかを誰かが理解していると思われる場合は、このコードを投稿できます。

  2. Excel クライアント アイテムがアクティブな間、ツールバーを表示できませんでした。上部のメニューバーに「インポート」(およびその他のオプション) を配置することもできますが、それでは十分ではありません。フローティング ツールバーも閉じられました。現在アクティブなアイテムに対してアクションを実行できないツールバーが存在すると混乱するため、これを行うことは理にかなっています...しかし、私の場合、それは問題です.

そこで、ダイアログ アプローチに戻り、インポートする Excel スプレッドシート ファイルを表示する ActiveX コントロールを埋め込む必要があると考えています。

選択変更イベントを処理できるようにするか、選択されているセルを見つけられるようにする必要があります (または、ダイアログの [インポート] ボタンをクリックして選択したセルが選択解除される場合は、最近選択されたセルを見つけられるようにする必要があります)。

また、これは広く一般に公開されている商用アプリケーションで使用されるため、合理的なライセンス条件が付属している必要があります。

私が試していたアプローチのいずれかに対する「クイックフィックス」を誰かが知っていれば、それも役に立ちます。

誰かが私を助けてくれることを願っています!

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

vb.net - COM OLE オブジェクトで TDD を行うにはどうすればよいですか

ラッパーを書き込もうとしている OLE COM オブジェクトがあり、TDD を使用してそのコードを書き始めることにしました。書き込もうとしている内容の方向性をよりよく理解できると信じているからです。COM オブジェクトには、次のようなインターフェイスがあります。

[Do] コマンドは次のようになります。

今、私はラッパーを書こうとしているので、次のような関数があります:

今私が抱えている主な問題は、新しいテストといくつかのコードを作成するたびに、OLE オブジェクトのインスタンスを作成する必要があり、アプリケーションが開始するのを待ち (30 秒以上)、小さな関数をテストすることです。 OLE オブジェクトを閉じて破棄し、コードを変更してもう一度実行します。

私の質問は次のとおりです。毎回 OLE アプリを起動することなく、これらすべてを行うより良い方法はありますか? モック オブジェクトについて聞いたことがありますが、実際にはあまり調べていません。ここで役に立ちますか? もしそうなら、どのように?

編集: Mapinfo のモック オブジェクトを作成する必要があることに気付きました。私の質問は、さまざまな書式設定された文字列を取ることができるモック オブジェクトを作成するにはどうすればよいですか? これは、ラッパーのコードが正しいことを確認するのにどのように役立ちますか?

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

excel - クラス Microsoft_Office Excel Worksheet で CoCreateInstance が失敗する。0x80040514 "クラスが登録されていません"

私が取り組んでいるサンプルでは、​​クラス Microsoft_Office Excel ワークシートの CoCreateInstance を呼び出します。0x80040514 (「クラスが登録されていません」) の HRESULT で失敗します。他のエクセルのクラス(Excel.Application)はシステムに登録されているのですが、ワークシートのクラスは登録されていません……このクラスを登録することはできますか?

更新: Microsoft の DSOFramer サンプル プロジェクトを使用しています。最初に IMoniker クラスを使用してバインドを試みます。それが失敗した場合は、clsid の CoCreateInstance を呼び出します。これは他の MS Office オブジェクトでも機能する可能性がありますが、Excel の場合、クラスはワークシート用です。サンプルを CoCreateInstance _Application に変更し、ワークブックを取得して、ターゲット ファイルの Workbooks::Open を呼び出し、Worksheet オブジェクトを返します。次に、そのポインターを返し、元のサンプル コード パスにマージしました。すべてが機能しています。