0

誰もこれについて経験がありますか?

Visual Basic 6 に同梱されているツリー コントロールの拡張機能を使用するために、SendMessage API 呼び出しを使用するサード パーティによって作成されたアプリケーションがあります。

これはすべて、デスクトップ上および Windows 2000 Server 上の Citrix 4 で正常に動作します (そして 3 ~ 4 年間動作しています)。Windows 2003 Server 上の現在のセットアップ Citrix 5 では、コンソールからは問題なく動作しますが、Presentation Server Client では動作します。TVM_GETITEM または TVM_SETITEM メッセージで SendMessage() 呼び出しを使用すると、アプリ全体がクラッシュし、エラー メッセージもログ エントリも何も表示されません。

私は Citrix で VB6 開発環境を構築しました。Presentation Server Client でコードを実行すると、IDE を取り出しても同じことが起こります。

通常、SendMessage() 呼び出しに渡されるパラメーター構造体でエラーが発生すると予想されますが、とにかく VB6 は非常に不安定なので、Windows では毎回失敗すると思っていました。Citrix クライアントでは違いがあるはずです。

Google、Citrix Web サイトなどで問題への参照が見つかりません。

任意のポインタ、アイデアの提案などをいただければ幸いです。

4

2 に答える 2

0

このようTVITEMに制限して、属性のみを取得していることを確認してください。mask

.mask = .mask And &H7F

...電話する前にSendMessage。TVM_GET/SETITEM は新しいバージョンのコモン コントロールで拡張された受信バッファを想定しているため、そこに &FFFF または -1 を平手打ちすることはできません。構造体の新しいバージョンの名前は に変更されTVITEMEXます。

于 2010-06-22T14:45:23.547 に答える
0

私は Citrix/Presentation サーバーについて何も知りませんが、最後の手段として、VB5 共通コントロール ライブラリ (comctl32.ocx) のツリービューを試すことができます。

(VB6 ツリー ビュー (mscomctl.ocx) は「コア」win32 コモン コントロール ツリービュー (comctl32.dll) とは無関係であるため、これを提案するだけです。これは完全にカスタムの実装であり、ツリービュー API のサポートが制限されています (できません)。 VB5 バージョンは本物を使用しますが、バック/フォア カラーを設定します)。

于 2010-06-23T20:36:37.920 に答える