2011-08-11 19 views
3

私はDelphiのアプリでこのコード行を持っている:WindowsシェルおよびCitrix

Citrixセッションを介して実行
sh := CoShellWindows.Create; 

が、これは例外を発生させない「十分な記憶域がこの操作を完了します。」

誰かが私がCitrixを通じてこれにアクセスできないという疑惑を確認できますか?違いがあれば、私はシームレスモードで走っています。おそらく、公開されたアイコンを変更する必要がありますか?

私は、作成するCitrixに "Shell"がないと推測しています。

おかげ

EDIT

CoShellWindows単にIShellWindows interface実装するオブジェクトを作成するクラスです。このインターフェイスは、Internet Explorerのインスタンス(またはより具体的にはIWebBrowser2インターフェイスを実装するアイテム)を探すアイテムを反復するために使用されます。

CoShellWindowsを使用するユースケースシナリオはいくつかありますが、すべてが最終的にIWebBrowser2インターフェイス(Internet Explorer 8)と対話するために使用されます。私の要件は、このIWebBrowser2オブジェクトを取得することです。舞台裏

コールは、以下のパラメータを使用してWindows APIのCoCreateInstanceを呼び出す:

  • rclsid = {9BA05972-F6A8-11CF-A442-00A0C90A8F39}( IShellWindowsのCLSID)
  • pUnkOuter = NULL(NIL)
  • dwClsContext = CLSCTX_ALL(私はこれら フラグの様々な組み合わせを試してみた)
  • RIID = {85CB6900-4D95-11CF-960C-0080C7F4EE85}(IShellWindowsのIID)
  • PPV =型IShellWindowsとして宣言された変数

例:CoCreateInstanceを(CLASS_ShellWindows、ゼロ、CLSCTX_ALL、IID_IShellWindows、SH)

+3

私はあなたを助けるかもしれませんが、私はデルファイについて何も知らない - CoShellWindowsとは何ですか?公開されたアプリケーションでは、シェル(デスクトップなど)はありません。 –

+0

このCoShellのことは分かりませんが、メインのアプリから外部の.batと.exeプログラムを実行できることを確認できます。 Citrixのアイコンから実行されるDelphiアプリケーションがあり、それは外部の.exeプログラムである多くのレポートを実行します。 –

答えて

4

あなたの例外 "が足りませんストレージがこの操作を完了します。" 「シェルが存在しないため、インスタンスが作成できない」

基本的には、Citrixで作成するシェルがないことを前提にしています。

あなたは何のためにシェルを使用していますか?より多くの情報を提供しているかのように、私たちは完全な回避策を提供することができます。

関連する問題