WideString bzw PChar sollte ein BSTR darstellen falls das hilft.
Soweit bin ich auch schon das es Widestring ist.. (Wenn schon dann PWideChar aber auch schon versucht kommt nix bei rum)
Es scheint aber ein Pointer zu sein
Nun in dem Fall wäre es PWideString und das hab ich schon versucht es liefert keinen verwendbaren string zurück.
Hier ist irgend etwas noch unverständlich für mich also die Übersetzung.
Code:
CComPtr<IBaseFilter> source;
if (FAILED(hr = source.CoCreateInstance(__uuidof(IYoutubeSource)))) {
return VLC_EGENERIC;
}
CComQIPtr<ISupportedSites> ss = source;
if (!ss) {
return VLC_EGENERIC;
}
CComBSTR
url;
if (S_OK != (hr = ss->Test(original_url.c_str(), FALSE, &
url))) {
return VLC_EGENERIC;
}
bin mir nicht sicher ob das richtig ist!
Delphi-Quellcode:
var
URL: PWideString;
Source: IBaseFilter;
//oder IFileSourceFilter
//...
if DYDYoutubeFilter <>
nil then
begin
hr := CoCreateInstance(CLSID_DYDYoutube,
nil, CLSCTX_INPROC_SERVER, IID_IBaseFilter, Source);
if SUCCEEDED(hr)
then
SupportedSites := ISupportedSites(Source);
hr := SupportedSites.Test(PWideChar(MediaFile), false,
url);
if SUCCEEDED(hr)
then
begin
end;
end;
Source basierend auf IBaseFilter oder auf IFileSourceFilter.
Zitat:
ISupportedSites IID is {FF762ACC-13EC-463A-A29C-FD4B0CD3E019} (see
SDK). You must
query it from the filter instance. Example (C++):
Nun das
SDK ist ja mein Problem
blicke da nicht wirklich durch.
gruss