Delphi アプリに次のコード行があります。
sh := CoShellWindows.Create;
Citrix セッションで実行すると、「この操作を完了するのに十分なストレージがありません」という例外が発生します。
Citrix経由でアクセスできないという疑いを誰かが確認できますか? 違いがあれば、シームレスモードで実行しています。公開されたアイコンを機能させるために何か変更する必要があるのではないでしょうか?
Citrix には作成する「シェル」がないと推測しています。
ありがとう
編集
CoShellWindowsは、 IShellWindows インターフェイスを実装するオブジェクトを作成する単純なクラスです。次に、このインターフェイスを使用して、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, nil, CLSCTX_ALL, IID_IShellWindows, sh)