585 DWORD bind_info, bscf = BSCF_FIRSTDATANOTIFICATION | BSCF_LASTDATANOTIFICATION;
588 static const STGMEDIUM stgmed_zero = {0};
598 ok(pOIProtSink !=
NULL,
"pOIProtSink == NULL\n");
599 ok(pOIBindInfo !=
NULL,
"pOIBindInfo == NULL\n");
600 ok(grfPI == 0,
"grfPI=%d, expected 0\n", grfPI);
614 memset(&bindinfo, 0,
sizeof(bindinfo));
616 hres = IInternetBindInfo_GetBindInfo(pOIBindInfo, &
bind_info, &bindinfo);
619 memset(&bindinfo, 0,
sizeof(bindinfo));
620 bindinfo.cbSize =
sizeof(bindinfo);
621 hres = IInternetBindInfo_GetBindInfo(pOIBindInfo, &
bind_info, &bindinfo);
624 ok(
bind_info & BINDF_FROMURLMON,
"BINDF_FROMURLMON is not set\n");
627 !(
bindf&BINDF_ASYNCSTORAGE) || !(
bindf&BINDF_PULLDATA))
628 ok(
bind_info & BINDF_NEEDFILE,
"BINDF_NEEDFILE is not set\n");
630 ok(!(
bind_info & BINDF_NEEDFILE),
"BINDF_NEEDFILE is set\n");
632 bind_info &= ~(BINDF_NEEDFILE|BINDF_FROMURLMON);
636 ok(
bind_info == (
bindf & ~(BINDF_NEEDFILE|BINDF_FROMURLMON)),
"bind_info = %x, expected %x\n",
639 ok(bindinfo.cbSize ==
sizeof(bindinfo),
"bindinfo.cbSize = %d\n", bindinfo.cbSize);
640 ok(!bindinfo.szExtraInfo,
"bindinfo.szExtraInfo = %p\n", bindinfo.szExtraInfo);
641 ok(!
memcmp(&bindinfo.stgmedData, &stgmed_zero,
sizeof(STGMEDIUM)),
"wrong stgmedData\n");
642 ok(!bindinfo.grfBindInfoF,
"bindinfo.grfBindInfoF = %d\n", bindinfo.grfBindInfoF);
643 ok(!bindinfo.dwBindVerb,
"bindinfo.dwBindVerb = %d\n", bindinfo.dwBindVerb);
644 ok(!bindinfo.szCustomVerb,
"bindinfo.szCustomVerb = %p\n", bindinfo.szCustomVerb);
645 ok(!bindinfo.cbstgmedData,
"bindinfo.cbstgmedData = %d\n", bindinfo.cbstgmedData);
646 ok(bindinfo.dwOptions == (
bind_to_object ? 0x100000 : 0),
"bindinfo.dwOptions = %x\n", bindinfo.dwOptions);
647 ok(!bindinfo.dwOptionsFlags,
"bindinfo.dwOptionsFlags = %d\n", bindinfo.dwOptionsFlags);
648 ok(!bindinfo.dwCodePage,
"bindinfo.dwCodePage = %d\n", bindinfo.dwCodePage);
649 ok(!
memcmp(&bindinfo.securityAttributes, &sa_zero,
sizeof(sa_zero)),
"wrong bindinfo.securityAttributes\n");
651 ok(!bindinfo.pUnk,
"bindinfo.pUnk = %p\n", bindinfo.pUnk);
652 ok(!bindinfo.dwReserved,
"bindinfo.dwReserved = %d\n", bindinfo.dwReserved);
659 hres = IInternetProtocolSink_ReportProgress(pOIProtSink,
660 BINDSTATUS_DIRECTBIND,
NULL);
662 "ReportProgress(BINDSTATUS_SENDINGREQUEST) failed: %08x\n",
hres);
670 hres = IInternetProtocolSink_ReportProgress(pOIProtSink,
671 BINDSTATUS_SENDINGREQUEST,
emptyW);
673 "ReportProgress(BINDSTATUS_SENDINGREQUEST) failed: %08x\n",
hres);
679 IInternetProtocolSink_AddRef(pOIProtSink);
696 static const WCHAR wszMimes[] = {
'*',
'/',
'*',0};
699 hres = IInternetBindInfo_GetBindString(pOIBindInfo, BINDSTRING_USER_AGENT,
704 "GetBindString(BINDSTRING_USER_AGETNT) failed: %08x\n",
hres);
705 ok(fetched == 256,
"fetched = %d, expected 254\n", fetched);
706 ok(ua == (
LPWSTR)0xdeadbeef,
"ua = %p\n", ua);
708 hres = IInternetBindInfo_GetBindString(pOIBindInfo, BINDSTRING_ACCEPT_MIMES,
709 accept_mimes, 256, &fetched);
711 "GetBindString(BINDSTRING_ACCEPT_MIMES) failed: %08x\n",
hres);
712 ok(fetched == 1,
"fetched = %d, expected 1\n", fetched);
713 ok(!
lstrcmpW(wszMimes, accept_mimes[0]),
"unexpected mimes\n");
716 hres = IInternetBindInfo_GetBindString(pOIBindInfo, BINDSTRING_ACCEPT_MIMES,
717 NULL, 256, &fetched);
719 "GetBindString(BINDSTRING_ACCEPT_MIMES) failed: %08x\n",
hres);
721 hres = IInternetBindInfo_GetBindString(pOIBindInfo, BINDSTRING_ACCEPT_MIMES,
722 accept_mimes, 256,
NULL);
724 "GetBindString(BINDSTRING_ACCEPT_MIMES) failed: %08x\n",
hres);
726 hres = IInternetBindInfo_QueryInterface(pOIBindInfo, &IID_IServiceProvider,
741 NULL, 0, &additional_headers);
748 ok(additional_headers ==
NULL,
"additional_headers=%p\n", additional_headers);
752 &IID_IHttpNegotiate2, (
void**)&http_negotiate2);
761 hres = IHttpNegotiate2_GetRootSecurityId(http_negotiate2, sec_id, &
size, 0);
766 IHttpNegotiate2_Release(http_negotiate2);
767 ok(
hres ==
E_FAIL,
"GetRootSecurityId failed: %08x, expected E_FAIL\n",
hres);
784 IInternetProtocolSink_AddRef(pOIProtSink);
791 data.grfFlags = PI_FORCE_ASYNC;
793 hres = IInternetProtocolSink_Switch(pOIProtSink, &
data);
805 hres = IInternetProtocolSink_ReportProgress(pOIProtSink,
806 BINDSTATUS_CACHEFILENAMEAVAILABLE,
file_url+7);
808 "ReportProgress(BINDSTATUS_CACHEFILENAMEAVAILABLE) failed: %08x\n",
hres);
814 hres = IInternetProtocolSink_ReportProgress(pOIProtSink,
815 BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE,
wszTextHtml);
817 "ReportProgress(BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE) failed: %08x\n",
hres);
824 hres = IInternetProtocolSink_ReportProgress(pOIProtSink, BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE,
wszTextHtml);
826 "ReportProgress(BINDSTATUS_MIMETYPEAVAILABLE) failed: %08x\n",
hres);
829 hres = IInternetProtocolSink_ReportProgress(pOIProtSink, BINDSTATUS_MIMETYPEAVAILABLE,
wszTextHtml);
831 "ReportProgress(BINDSTATUS_MIMETYPEAVAILABLE) failed: %08x\n",
hres);
835 bscf |= BSCF_DATAFULLYAVAILABLE;
837 bscf = BSCF_FIRSTDATANOTIFICATION|BSCF_DATAFULLYAVAILABLE;
845 SET_EXPECT(Obj_OnProgress_CACHEFILENAMEAVAILABLE);
848 SET_EXPECT(Obj_OnProgress_BEGINSYNCOPERATION);
861 SET_EXPECT(OnProgress_CACHEFILENAMEAVAILABLE);
870 hres = IInternetProtocolSink_ReportData(pOIProtSink, bscf, 13, 13);
905 hres = IInternetProtocolSink_ReportProgress(pOIProtSink, BINDSTATUS_BEGINDOWNLOADDATA,
NULL);
906 ok(
hres ==
S_OK,
"ReportProgress(BINDSTATUS_BEGINDOWNLOADDATA) failed: %08x\n",
hres);
910 hres = IInternetProtocolSink_ReportData(pOIProtSink, bscf, 13, 13);
917 hres = IInternetProtocolSink_ReportResult(pOIProtSink,
S_OK, 0,
NULL);
static WCHAR file_url[INTERNET_MAX_URL_LENGTH]
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
VOID WINAPI CoTaskMemFree(LPVOID ptr)
static enum @1674 test_protocol
char * wine_dbgstr_w(const wchar_t *wstr)
int WINAPI lstrcmpW(LPCWSTR lpString1, LPCWSTR lpString2)
PVOID LockRequest(PIRP Irp, PIO_STACK_LOCATION IrpSp, BOOLEAN Output, KPROCESSOR_MODE *LockMode)
#define CHECK_EXPECT(func)
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
static WCHAR current_url[INTERNET_MAX_URL_LENGTH]
static const WCHAR emptyW[]
static BOOL bind_to_object
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
static BOOL is_urlmon_protocol(int prot)
static BOOL only_check_prot_args
static const WCHAR wszTextHtml[]
static IServiceProvider service_provider
#define CHECK_CALLED_BROKEN(func)
static const WCHAR * reported_url
static HANDLE complete_event2
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
#define CLEAR_CALLED(func)
static IInternetProtocolSink * protocol_sink
static HRESULT binding_hres
static IHttpSecurity http_security
BOOL WINAPI IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
static IInternetBindInfo bind_info
static DWORD WINAPI thread_proc(PVOID arg)
static IHttpNegotiate2 http_negotiate
#define CHECK_CALLED(func)