2011-10-29 15 views
6

私は、現在の走行ログエントリを取得するために、これらの2つの方法があり、GetTravelLogEntryメソッドを呼び出すことによって取得したログエントリに移動すると失敗します。 NET WebBrowserコントロール。 TravelToTravelLogEntryメソッド内でITravelLogStg::TravelToを呼び出すと、thisページによれば、Interface not supportedエラーである0x80004002が表示されます。私は何か間違っているのですか?ITravelLogStg :: TRAVELTOはエラー0x80004002の

PD:このコードのほとんどをhereから取り出しました。

+0

Marshal.ReleaseComObject(tlstg)を実行せずに試しましたか? –

+0

@Simon:私はこれを試しましたが、まだ失敗することがあります。 – Juan

答えて

1

旅行ログの現在のエントリに移動しようとしていますが、あなたが既にそこにいるようには意味がありません。私はこの特定のケースのエラーを再現することができ、非常に有用ではないこともわかります。

しかし、他のものを使用してGetRelativeEntryの最初のパラメータとして0を指定してから、TravelToを呼び出すと、期待通りに機能しました。

ITravelLogStg :: GetRelativeEntryは、 オフセットで指定されたエントリを返します。正のオフセットは、現在のエントリの後にエントリを返します。 a 負のオフセットは、現在のエントリの前にエントリを返します。ゼロ は、現在のエントリを返します。

(出典:MSDN

hr = tlstg.GetRelativeEntry(0, out ptle);を変更してください - 最初のパラメータは、あなたがナビゲートしたい方向に指定します。 0以外の値を使用すると効果があります。 1つのエントリを後方に移動するために-1を使用できます。

+0

お返事ありがとうございます。実際には、 'GetTravelLogEntry'を呼び出した後、' TravelToTravelLogEntry'を呼び出す前に別のページに移動します。 – Juan

+0

それは問題になりますか?エントリを保持し、次にナビゲートする?たぶん、これはどうにかインターフェイスを無効にします。ナビゲートした後でエントリーを入手できますか? –

+0

さて、エントリがいつ作成されるのかを知る正確な方法はありません( 'DocumentComplete'イベントは言及していません!)。だからあなたは本当にあなたが探しているエントリがどこにあるのかわからない。奇妙なことは、時には(常にナビゲートした後に)うまく動作することがあり、ときどき動作しないことです。 – Juan

0

あなたの問題は、あなたがTravelToメソッドに渡しているものであると思います。あなたはこれを越えることができるかどうかを見るために単純な整数値を渡してみましたか?

関連する問題