問題タブ [ole-automation]

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 に答える
1308 参照

vb.net - Document.Save が [名前を付けて保存] ダイアログを表示している

Visual Studio 2010 VB.NET 4.0 Windows アプリケーション プロジェクトがあります。コードは Word 2010 文書にデータを入力しています。30 から 60 のテーブルの領域のどこかに、30 から 50 の埋め込みグラフの領域のどこかにあります (すべてインライン形状 ( InlineShape) として定義されています)。

Document.Save()次のエラーが発生したため、通常の呼び出しを開始する必要がありました: There are too many edits in the document. This operation will be incomplete. Save your work.. 利用可能なディスク容量とメモリも十分にあります。

ほとんどの場合、.Save()動作しますが、呼び出されたときにランダムに [名前を付けて保存] ダイアログが表示さ.Save()れます。ちなみに、クリックしてキャンセルすると、次のエラーが発生しますCommand failed at Microsoft.Office.Interop.Word.DocumentClass.Save()

以下は、何が起こっているかを理解するためのコードの抜粋です。

[名前を付けて保存] ダイアログが表示される理由を知っている人はいますか? 止めてもいいですか?

「編集が多すぎます」というエラーが表示されて、それほど多くの保存を行う必要がない理由はありますか (とにかくプロセスが遅くなります!)?

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

delphi - OleAutomation を介して添付されたテンプレートを削除または変更する方法

私の会社には、顧客との通信を生成するために使用される多数のテンプレートがあります。生成されたファイル (テンプレート + データ) のコピーが後で編集できるように保存されるように、既存のプロセスを変更する必要があります。

私の問題は、これらの保存された MSWord ドキュメントの 1 つを開いて編集してから閉じると、MSWord がテンプレート (生成プロセスで選択されたもの) に変更が加えられたと主張することです。

なぜこれが起こっているのかはよくわかりませんが、生成されたドキュメントに元のテンプレートへの参照が含まれている可能性がありますが、テンプレートがリモートの場所にあるため、MSWord が新しいローカル ファイルを生成しようとしています。 .

その診断が正しければ、ドキュメントからテンプレート参照を削除する方法が必要です。

診断が間違っている場合、考えられる説明/解決策は何ですか?


両方の結果ファイルにテンプレートへの参照が含まれていることがわかりました。

注: Word での手動編集は問題ありません。レターを生成して Winword からディスクに保存すると、それを開いて操作することができます。自動化ステップのどこかで問題が発生しています。


興味深いことに、保存形式を に変更しましたが'.rtf'、問題は残っています。

さらに、テンプレートへの変更の保存に「はい」と言っても問題ありません。ドキュメントを開いたり閉じたりするたびに (編集しているかどうかにかかわらず) プロンプトが表示され続けます。


wdFormatXML文書を保存することで、レター テンプレートへの参照を確認して編集できることを発見しました。私がそれをすれば、問題はなくなります。

私は現在、自動化によって同じ結果を達成しようとしていますが、成功していません。

tmplt 'Normal.dot'、varNull、'c:\progra~1\etc\Simple.dotx' などの値では機能しません。関数呼び出しは、これらの値の最初の 2 つのテンプレートが見つからないか、単にハングすることを示しています。

元の質問に戻ります - 添付されたテンプレートをクリアするにはどうすればよいですか?

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

excel - ExcelからPB8のテキストファイルにデータを保存する

以下のコードを使用して、Excel ファイルのデータを Powerbuilder 8 のタブ区切りテキスト ファイルに転送していますが、シート 1 からのデータのみを転送しています。Excel ファイルのすべてのシートのデータを転送したい1 つの統合されたテキスト ファイルに。誰か助けてくれませんか?

コード -

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

c++ - 非同期 COM 呼び出しを行う -- 独自の P/S を作成する必要がありますか?

タイプ ライブラリで定義され、コードに実装されたカスタム インターフェイスがあります。独自のプロキシ/スタブを作成していません。私の場合はIGlobalInterfaceTableを使用して、インターフェイス ポインターをメイン スレッド (STA) からバックグラウンド スレッド (STA) に正常にマーシャリングしました。

そのバックグラウンド スレッドから、UI スレッドでオブジェクトへの非同期呼び出しを行いたいと考えています。オブジェクトにICallFactoryを実装していません。標準プロキシが実際にICallFactoryを実装していることがわかります (つまり、 ICallFactoryのバックグラウンド スレッドで正常に QI を実行できます)。しかし、カスタム インターフェイスのCreateCallは HRESULT 0x80040150 (レジストリからキーを読み取ることができませんでした) で失敗します。

これを行うには、 ICallFactoryを明示的に実装する独自のプロキシを作成する必要がありますか?

ここに私のIDLがあります:

そして、これが私の単体テストのバックグラウンド スレッド プロシージャです。


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

winapi - HKEY_CURRENT_USER にプロキシ/スタブを登録する

MIDL コンパイラは、HKEY_LOCAL_MACHINE に書き込む登録ルーチンを使用して、プロキシ/スタブのコードを生成します。MIDL で生成された p/s を HKEY_CURRENT_USER に登録する方法はありますか?

また: p/s と COM サーバーの両方がこのようにユーザーごとに登録されている場合、これは機能しますか? COMサーバーがユーザーごとに登録されている場合、マシン全体で登録されたap/sが正しく機能しないことがわかりました(非常にイライラする48時間後)。特に、これらの状況では、p/s の非同期呼び出しロジック (ICallFactory::CreateCall) が失敗します。

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

java - Microsoft Visio OLE オートメーション エラー ログ

Visio ドキュメントを操作するために、SWT (Standard Widget Toolkit) によって提供される OleAutomation Java API を使用しています。OleAutomation 呼び出しを使用して、自動化 API の Java ラッパーを生成しました。例:(形状の削除)

アプリケーション ロジックの特定の場所からこの削除を呼び出すと、特有の問題に直面しています。ページに図形を配置し、delete を呼び出します。奇数番号の呼び出しの場合、削除は成功し、varResult は VT_EMPTY(1 回目、3 回目、5 回目....時間の呼び出し) を返します。偶数番号の呼び出し (ページに形状を再度配置し、-2nd、4th、6th などを呼び出します) の場合、varResult は失敗を示す「null」を返します。ここで、偶数番号の呼び出しで何が問題になっているのかを理解する必要があります。Visio Automation フレームワークには、失敗の理由をログに記録できるログ機能がありますか?

0 投票する
0 に答える
84 参照

c++ - Microsoft IDL、インターフェイスの属性を変更する

少し前に、VB6 アプリケーションのプラグインのインターフェースを定義するための idl ファイルを準備しました。

コードを確認すると、次のようなインターフェイスがあることがわかりました。

このインターフェイスは、一部の VB6 および C++ コンポーネント (dll) で使用され、メインのプラグイン クラスを公開します。また、exe はタイプ ライブラリを参照して、プラグイン クラスの参照を保持します。

私が今やりたいことは、必須ではないためodlversion、およびnonextensibleを削除し、 object属性を追加して COM インターフェイスを正しく定義することです。

  • システム全体が実動になったので、インターフェイスの属性を変更できますか?
  • 互換性の問題なしで実行できますか?

ありがとうございました