2009-07-17 5 views
1

これを正常に動作させることは悪夢だったので、私はこれを他の人に任せることにしました。フラッシュのActiveXホスティングカスタムFlash ActiveXホスト - 相対パス

あなたがSetClassを実装したIStorageとOleCreateを呼び出すことが必要実装しており、IOleClientSite(無操作することはできません):

IOleInPlaceSiteEx: 
    OnInPlaceActivateEx() (no-op) 
    GetWindow() 
    GetWindowContext() 
IOleClientSite: 
    ShowObject() (no-op) 

をしかし、任意の外部リソースロードされたSWFは必須にアクセス完全に修飾され、またはそれはのようなエラーで失敗します。これはStackettiqueをpropperされていない場合、私は、私は答えとして考え出したものを掲載してい

Error #2032: Stream Error. URL: file://<relative path> 

、教えてください。

return CreateURLMonikerEx(pmkBase, szName, ppmk, URL_MK_UNIFORM); 
pmkBaseがあなたのベースパスを持っているURLモニカーがある

、例えば:

答えて

0

この問題を解決するには、あなたのIOleClientSiteもCreateMoniker()を実装しIBindHostを返すために、IServiceProvider :: QueryService()を実装する必要があります:

OLECHAR szPath[MAX_PATH]; 
int cch = ::GetCurrentDirectory(ARRAYSIZE(szPath), szPath); 
// GetCurrentDirectory does not finish with \, which causes the top directory to be removed :(
// Also, error checking is for pansies. 
szPath[cch++] = L'\\'; 
szPath[cch++] = 0; 
CreateURLMonikerEx(0, szPath, &pmkBase, URL_MK_UNIFORM);