0
プロパティページを表示する必要があるアプリケーションをC#で作成しています。 - ソースが出てすぐにプロパティウィンドウが点滅を実行している場合OleCreatePropertyFrameIndirectをCから呼び出す方法#
ISpecifyPropertyPages pProp = sourceObject as ISpecifyPropertyPages;
int hr = 0;
//Get the name of the filter from the FilterInfo struct
FilterInfo filterInfo;
hr = ((IBaseFilter) sourceObject).QueryFilterInfo(out filterInfo);
//DsError.ThrowExceptionForHR(hr);
if (hr == 0)
{
// Get the propertypages from the property bag
CAUUID caGUID;
hr = pProp.GetPages(out caGUID);
if (hr == 0)
{
// Create and display the OlePropertyFrame
hr = Win32.OleCreatePropertyFrame(parentWindowForPropertyPage, 0, 0,
filterInfo.achName, 1,ref sourceObject,
caGUID.cElems,
caGUID.pElems, 0, 0, IntPtr.Zero);
}
// Release COM objects
Marshal.ReleaseComObject(pProp);
Marshal.FreeCoTaskMem(caGUID.pElems);
}
...ソースが実行されていない場合は正常に動作します:私は、コードを持っています。私は代わりにOleCreatePropertyFrameIndirectを使用して既存のオブジェクトで呼び出す必要があると推測していますが、C#経由でこれを行う例は見つかりません - 任意のアイデアですか?
hrはゼロを返しますので、そこからどこに行くかわかりません。 – Sean
エラーがプロパティシートによって内部的にキャッチされるため、ゼロが返されます。そして、それは最初の場所でもエラーではないかもしれません - それはホスティングシート上の「EndDialog」を呼び出すプロパティページを考えてください。 –
私が見た他のいくつかのソフトウェアは、実行中のプロパティページにアクセスできるので、実行することができます。間接的な方法を呼び出すことは、私が考えることができる唯一のことでした。 – Sean