jjzjj

windows - wininet API 的 P/Invoke 机制

我正在使用wininetapi将HTTPPOST发送到SSL服务器。我想使用P/Invoke将这些api包装到C#,因为C#中的原始代码。我如何将这些api包装到c#。我试过了,但没有用。我正在为WindowsMobile和智能手机做这个。LPCTSTRlpszAgent=_T("CeHttp");DWORDdwError;DWORDsizeInResult,sizeOutResult,sizeToWrite,sizeWritten,dwRead;HINTERNEThInternet=NULL;HINTERNEThConnect=NULL;HINTERNEThRequest=NULL;

windows - WinINET 是可重入的吗?

我发现WinHTTP不可重入(1、2)。WinINET是可重入的吗?我们有一个与WinINET同步HTTP的ActiveX控件。如果浏览器(在javascript中)触发一个异步http请求(ajax),然后立即调用ActiveX操作(同一个IE进程),这两个操作似乎是交错的,可能在同一个API上重入,并打破了WinINET状态:ajax上的clearInterval错误地失败了一次。我们将EXT用于ajax,并且EXT假设clearInterval第一次工作。 最佳答案 WindowsInternet(WinINet)API的一个

windows - 在 wininet.h 中,SECURITY_SET_MASK 的用途是什么?

在wininet.h中,SECURITY_SET_MASK的用途是什么?我在网上找不到它的任何文档。 最佳答案 这是一个mask,允许您一次设置或清除多个位(标志)。在这种情况下,它是所有可设置的安全标志。SDKheader中此常量的定义是掩码中包含哪些标志的权威引用:#defineSECURITY_SET_MASK(SECURITY_FLAG_IGNORE_REVOCATION|SECURITY_FLAG_IGNORE_UNKNOWN_CA|SECURITY_FLAG_IGNORE_CERT_CN_INVALID|SECURITY

c++ - 为什么 GetLastError() 在调试期间与 "normal"执行期间返回不同的代码?

try{pConnect=sess->GetFtpConnection(ftpArgs.host,ftpArgs.userName,ftpArgs.password,port,FALSE);}catch(CInternetException*pEx){loginErrCode=GetLastError();printf("loginErrCode:%d\n",loginErrCode);if(loginErrCode==12013){printf("Incorrectusername!\n");exit(0);}elseif(loginErrCode==12014){printf("I

c - 在 Wininet 中使用 SSL

有人可以举例说明如何将SSL与wininetAPI一起使用吗?这是我的代码,但没有成功......DWORDdwFlags=INTERNET_FLAG_SECURE|INTERNET_FLAG_IGNORE_CERT_CN_INVALID|SECURITY_FLAG_IGNORE_UNKNOWN_CA|INTERNET_FLAG_IGNORE_CERT_DATE_INVALID|INTERNET_FLAG_NO_AUTO_REDIRECT|INTERNET_FLAG_PRAGMA_NOCACHE|INTERNET_FLAG_NO_CACHE_WRITE;hOpen=InternetOp

c++ - 使用 std::filesystem 输出作为 LPCWSTR

我正在制作一个程序,它递归地列出某个目录中的所有文件,并使用WinINet将每个文件分别上传到FTP服务器。我遇到的问题是在FtpPutFile()函数中使用filesystem::path::filename因为需要LPCWSTR。转换它(或以某种方式按原样使用它)的最好和最简单的方法是什么?std::stringpath="C:\\Programs";for(constauto&entry:std::experimental::filesystem::recursive_directory_iterator(path))FtpPutFile(hIConnect,entry.path

c++ - 为什么 GetLastError() (NOT GetReturnMessage) 在用户名错误时返回 “wrong password”?

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:WhydoesGetErrorMessagereturn“wrongpassword”,whentheusernameiswrong?自GetErrorMessageg为无效密码和用户名保留相同的字符串,我决定使用GetLastError(),因为它有一个单独的错误each.但是,如果用户名不正确,它仍然会给我代码12014?(密码错误)但有一个单独的错误代码:ERROR_INTERNET_INCORRECT_USER_NAME-12013这不应该起作用吗?或者这也是有意为之的吗?谢谢。try{pConnec

c++ - IE BHO - 为页面加载调用 DISPID_FILEDOWNLOAD?

我正在实现一个InternetExplorer浏览器帮助程序对象,它应该捕获DISPID_FILEDOWNLOAD事件。我首先在C#中实现了它,效果很好,除了我还需要URL附带的cookie,因此需要调用InternetGetCookiesEx。由于.NET在它自己的进程中运行,它不会向我返回sessioncookie,所以不好。然后我用C++编写了一个快速测试DLL,以便将它加载到与IE相同的进程中,这对cookie非常有用,但我现在遇到了一个新问题:当我只希望它们用于实际下载时,我会在我的调用函数中为每个页面加载调用DISPID_FILEDOWNLOAD。在C#版本中,我只收到了对

c++ - "Is there a better way?"Windows Vista 上的 wininet 错误 12029

在WindowsVista上使用MFCwininet类时,我一直收到错误12029(错误INTERNET无法连接,尝试连接到服务器失败。)。错误的原因是WindowsDefender。有没有比完全关闭WindowsDefender更好的方法来解决这个问题?我尝试关闭“实时保护”无济于事,我不得不完全关闭WD以阻止12029错误。如果没有更好的解决方案,希望有同样问题的其他人会看到这个问题并能够解决他们自己的问题。我上下搜索了intertubes并没有发现winineterror12029和WD之间的任何交叉引用。我的引用代码::CInternetSessionsession;::CHt

windows - WinInet::InternetSetOption(...) 总是返回 0 而 GetLastError() 返回 12018

我正在尝试使用InternetSetOption(...)方法为代理设置用户名和密码。但是,它总是返回零,最后一个错误设置为12018。下面是我的代码片段。#include"stdafx.h"#includeint_tmain(intargc,_TCHAR*argv[]){HINTERNET_session=::InternetOpen(_T("TestProgram"),INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,NULL);LPCTSTRproxyUserName=L"username";LPCTSTRproxyPassword=L"userpas