2011-01-14 5 views
0

C#でActiveXコントロールを再実装しています。C#でActiveXファイルのダウンロードを実装する方法

C++バージョンは、CDataPathPropertyから継承するプロパティクラスを使用します。次のコードはC#でどのように見えるでしょうか?

class CFileProperty : public CDataPathProperty 
{ 
DECLARE_DYNAMIC(CFileProperty) 
    ... 
} 

参考までに参考にしてください。

私は実際にやろうとしていることである:ActiveXのは、オブジェクトタグの中に、IEでホストされています

<object type="application/content-type" data="path-or-url-to-file"> 
    <PARAM name="Url" value="path-or-url-to-file" /> 
</object> 

だから、IEはファイル自体をダウンロードし、ActiveXにそれを提供する必要があります。ファイルが2回ダウンロードされないようにする必要があります。もちろん、データパラメータが使用され、urlパラメータが廃止されたソリューションを感謝します。

答えて

0

C#でCDataPathPropertyコンターパートが見つかりませんでした。だから私は別のアプローチを探していた。

コンテンツタイプとデータ属性を持つオブジェクトタグを正しく処理するには、IPersitMonikerを実装できます。関連する唯一の方法は負荷です。

public void Load(int fFullyAvailable, IMoniker pmk, IBindCtx pbc, uint grfMode) 
{ 
    if (pmk == null) 
     throw new ArgumentNullException("pmk"); 

    string url; 
    pmk.GetDisplayName(null, null, out url); 

    // Use the moniker to download the persisted data 
    // and obtain an IStream on that data 
    Guid iid = InterfaceID.IID_IStream; 
    object pStream; 
    pmk.BindToStorage(pbc, null, ref iid, out pStream); 

    // do whatever you want with the data inside pStream 
    ... 
} 
関連する問題