2012-01-06 9 views
0

私は、この関数はJavaScriptにさらされている:JavaScriptの完全なパスを取得する方法event.DataTransferオブジェクトがC++のnpapiプラグインの関数に渡されましたか?

plugin.handleDrop(event.DataTransfer); 

私はとのActiveXバージョンで成功を収めてきました:

onDrop(イベント)ハンドラからJavaScriptから呼び出さ

bool handleDrop(const NPVariant * args, uint32_t argCount, NPVariant* result){ 
    //Extract the full paths from the DataTransfer object passed into args 
} 

void handleDrop (IDispatch* arg){ 
    //Extract paths using QueryInterface for IID_IHTMLDataTransfer, 
    // IID_IServiceProvider, IID_IDataObject which gets dropfiles list 
} 

NPAPIバージョンでも同じことをしたいと思います。 MDNによると:https://developer.mozilla.org/En/DragDrop/DataTransfer datatransferオブジェクトは、nsIDOMDataTransferインターフェイスを実装しているようです。

これは、NPAPIを使用してデータ転送オブジェクトから完全に削除されたファイルパスを抽出することも可能ですか?実際にそこに到達するにはどのように変換を実際に行いますか?

ありがとうございました。

答えて

1

まあ、小文字は、nsIDOMDataTransferが実際にはNPAPIではないということです。それはXPCOMです。これは、(いくつかの歴史的な事例では)異なるものです。 NPN_GetValueのドキュメントを見ると、XPCOMのDOMウィンドウへの参照を与えるNPNVDomWindowはno longer supported as of FireFox 3.6です。同様に、javascriptからオブジェクトを渡したり、同じ期間にXPCOMの参照を取得したりすることはできません。

これは、プラグインでスクリプトインターフェイスを実装する方法としてXPCOMが廃止され、人々がまだそれを使用しようとしていたことが挙げられます。それ以外のNPAPIブラウザではNPRuntimeを使用しています。

とにかく、あなたがjavascriptで必要な情報を得ることができない場合は、プラグインを使用することができません。良いニュースは、プラグインがドラッグアンドドロップのターゲットになることです。悪い知らせは私が決して必要としなかったことですので、私はわかりません=]それは別の質問のための合理的な選択かもしれません。

大変申し訳ございません。

+0

ありがとうございます。特定の要素にドロップされたファイルから完全なパスを取得できるウィンドウレスのプラグインを作成する必要がありました。私は、ドラッグアンドドロップを受け入れるウィンドウ付きのプラグインがフルパスデータを取得するための唯一の方法だと思います。 – rhaoosh

+0

と思われます。ドラッグ&ドロップをサポートしていたGoogleのギアにソースコードを見るかもしれません。 – taxilian

関連する問題