Jiangsheng的CSDN Digest(March 4, 2006)

王朝other·作者佚名  2006-03-10
窄屏简体版  字體: |||超大  

为了便于搜索,这里尽可能保留了论坛上讨论的原文,但是这并不表示本人赞同帖子中的表述方式和观点。

CSDN 讨论总结系列:

Jiangsheng的CSDN Digest (Jan 21 2006)( http://blog.csdn.net/jiangsheng/archive/2006/03/05/615669.aspx)

Jiangsheng的CSDN Digest (Jan 7 2006)(http://blog.csdn.net/jiangsheng/archive/2006/01/07/573288.aspx

Jiangsheng的CSDN Digest (Jan 1 2006)http://blog.csdn.net/jiangsheng/archive/2006/01/01/568362.aspx

Jiangsheng的CSDN Digest (Dec 2005)(http://blog.csdn.net/jiangsheng/archive/2005/12/24/561501.aspx)

Jiangsheng的CSDN Digest (Oct 2005)(http://blog.csdn.net/jiangsheng/archive/2005/12/27/563274.aspx)

Win32 & .Net Q&A 200509 (http://blog.csdn.net/jiangsheng/archive/2005/09/13/480540.aspx)

Win32 & .Net Q&A (http://blog.csdn.net/jiangsheng/archive/2005/02/28/304654.aspx)

VC/MFC Q&A 200407 (http://blog.csdn.net/jiangsheng/archive/2004/07/13/40771.aspx)

在c++中如何创建一个文件? (VC/MFC 基础类)

已知IStream *pIStream取道内容,如何将pIStream内容写到一个文件中去?

http://www.codeproject.com/cpp/memorystream.asp

HANDLE hFile = CreateFile( lpFileName,

GENERIC_WRITE,

FILE_SHARE_READ,

NULL,

CREATE_ALWAYS,

FILE_ATTRIBUTE_NORMAL,

NULL );

if ( hFile )

...{

HGLOBAL hMem = NULL;

GetHGlobalFromStream( pStream, &hMem );//

LPVOID lpData = GlobalLock( hMem );

DWORD dwBytesWritten;

bResult = WriteFile( hFile, lpData, lBytesStreamed, &dwBytesWritten, NULL );

bResult &= ( dwBytesWritten == (DWORD)lBytesStreamed );

// clean up

GlobalUnlock(hMem);

CloseHandle(hFile);

The GetHGlobalFromStream function retrieves the global memory handle to a stream that was created through a call to the CreateStreamOnHGlobal function. it may not work on other streams.

The general approach is using a buffer as follows:

HRESULT hr = S_OK;

char szBuff[100];

ULONG cbRead = 1;

while (hr == S_OK && cbRead > 0)

...{

hr = pStream->Read(szBuff, sizeof(szBuff)-1, &cbRead);

if (hr == S_OK)

...{

szBuff[cbRead] = NULL;

WriteToFile(szBuff,cbRead);

}

}

想获取windows下CPU温度,请高手指点(其他开发语言 汇编语言)

搜索过以前的帖子,发现没有好的解决方案.那我想只能分成下面几个步骤进行:

1,获取主板上用于监测的芯片型号。

2,针对特定型号写特定的访问程序。

现在想请高手指点,如何获取主板上使用的芯片型号?现在我对windows驱动是一窍不通。

try http://support.microsoft.com/default.aspx?scid=306852

or contact your motherboard manufacturer.

虽然ms在win2k之后就提供wmi中的win32_temperatureProbe,但大部分主板不能直接支持(需要安装主板自己的驱动程序)现在的普遍做法是通过访问superio的register来获取,所以程序第一步就是必须获取主板上的superio芯片的型号,不同型号的访问方法不同

如何监控Outlook Express接收新邮件? (VC/MFC ATL/ActiveX/COM )

想做的是像杀毒软件的邮件监控程序那样,每当Outlook Express接收到新邮件时,先启动自己编的一个程序,由这个程序中先检查这封电子邮件的标题和内容。查了好多资料,最多的都是用Office里的Outlook.可我们的要求是OE。如果可以实现我上面的功能,那能否扩展到任何邮件处理程序(如foxmail...)都适用可以监控呢?

检查这封电子邮件的标题和内容可以通过抓pop3包来实现。直接hook winsock的相关函数,然后检查进程名称,是邮件发生程序则执行自己的工作。

Outlook Express is not designed for automation. however, if you target Windows XP or later, you may use some new OE interfaces to obtain information.

Reference:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/outlookexpress/oe/reference/ifaces/istorenamespace/openspecialfolder.asp

把一个WebBrowser窗口里的内容都写到bmp里(VC/MFC 图形处理/算法)

有两个思路,第一个是提取WebBrowser的hdc,然后得到hBitmap,然后按Bmp的格式保存。还有一个很痛苦的方法, 就是在hMemDC里按WebBrowser中的字体字号去自己画。现在我尝试第一个方法,可是WebBrowser的内容很长,有滚动条控制的,我得到的hdc里只有当前屏幕上的内容。

IViewObject

http://www.2ccc.com/article.asp?articleid=1423

http://www.codeproject.com/miscctrl/wbp.asp

http://www.codeproject.com/internet/htmlimagecapture.asp

使用CListCtrl显示大批量缩略图问题 (VC/MFC 界面)

由于工作需要大批量显示SolidWorks文件的缩略图(一万个左右),我现在使用的是虚CListCtrl既style = LVS_ICON|LVS_ALIGNTOP|LVS_OWNERDATA|WS_VISIBLE|WS_BORDER|WS_CHILD|LVS_SINGLESEL,对于SolidWorks文件可以读成bitmap,由于文件太多内存存不下,我现在想利用文件缓存,来缓存我生成的这些bitmap,有没有这样的方法,最好有例子.

我看了vcmute(横秋)有关这方面的解释提道了IExtractImage,不知道能解决我的问提吗?

http://community.csdn.net/Expert/topic/4134/4134216.xm8l?temp=.4045069

提供的连接没打开.

既然用了虚拟列表,一次显示的缩略图也不会超过几百个吧,这样对内存的需求就减少了很多。至于缓存,不需要加载所有的缩略图,使用后马上释放掉就可以了,利用双缓冲,绘制到一个内存DC上,刷新的时候再调取需要的缩略图http://blog.csdn.net/jiangsheng/archive/2003/11/20/3796.aspx

这个示例没有在空闲时释放缓存,你可以自己决定缓存的大小上限,然后改写PrepCache函数。

http://www.codeguru.com/cpp/controls/listview/usingimages/article.php/c899/

http://www.codeguru.com/cpp/controls/listview/usingimages/article.php/c4159

http://www.codeproject.com/shell/thumbextract.asp

请问怎样屏蔽WebBrowser下载窗口(VB 网络编程 )

当用WebBrowser打开一些不能解释的文件时就出现下载窗口,请问怎样屏蔽?即如果不能解释时就只出现网页不有打开页面不出现下载窗口。

一个思路:新建一个线程,在新的线程中不停的查找"文件下载"对话框,找到后,就用postmessage关闭它,不过要注意两个问题,一是要保证程序安全执行,调试的时候要小心,第二是,这样做的开销问题

http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/webbrowser/reference/events/downloadbegin.asp

让VB6.0编的程序通过soap tooltik3.0调用C#写的WebService? (.NET技术 Web Services )

目前要改造部分以前用VB6.0编的管理程序,需要通过soap tooltik3.0调用C#写的WebService。由于这方面资料很少,只有求助于CSDN上的各位朋友了,谢谢!

http://msdn.microsoft.com/library/en-us/dnmapnet30/html/_MWSHeaders.asp

用什么工具能够将 一个COM插件注册(反注册)操作 提取到一个 .reg文件中(VC/MFC ATL/ActiveX/COM)

注册时被调用的插件的DllRegisterServer函数的具体实现依赖于DLL的作者,有可能超出注册表操作的范围。要监视注册表操作的话,HOOK 注册表操作函数,把目标进程的一切注册表操作和文件操作都被记录下来。

使用WebBrowser控件,如何获取当前页面,当前鼠标所在图片【或文字】的连接地址(Delphi 网络通信/分布式开发 )

简单来说,就是如何获取网页中当前鼠标下的连接地址

uses

SHDocVw, MSHtml, ActiveX

var

E: IHTMLElement;

begin

E := (WebBrowser1.Document as IHTMLDocument2).elementFromPoint(Mouse.CursorPos.X, Mouse.CursorPos.Y);

E := (WebBrowser1.Document as IHTMLDocument2).elementFromPoint(100, 100);

Label1.Caption := E.title;

Label1.Caption := E.innerText;

最近用IShellFolder2做了个遍历文件夹的程序,但是我发现当文件夹中文件数超过3000时,shell接口也不是很快啊(VC/MFC 基础类 )

能不能讲讲windows explorer点击文件夹,然后显示在右边list的工作原理。以前我也用vlist实现过,我用vector<MyData>存储每个右边tree的相应打开的list条目,MyData类型是存储文件夹下各个路径pidl及该节点一些辅助信息,然后在vlist需要显示的时候在把PIDL转换成相应的filename,filesize,filetype等等,可是还是很慢啊,(当然我是把vector填充满了以后再update_vlist),照理说vector插入几千条简单结构的记录应该很快才对啊。如果普通list用TEXTCALLBACK和I_IMAGECALLBACK,也是在需要显示时才去调用相应的text和image吧?那这样效率和虚列表差不多吧,指的是10000条记录以下的list

explorer那不是遍历,那只是展开当前文件下的文件而已。遍历肯定会慢的,IShellFolder应该是最理想的方法了,你也可以用一下FindFile,但是对虚拟目录无效。普通list用TEXTCALLBACK和I_IMAGECALLBACK还是可能差一些,因为虚列表中提供了缓存消息,你可以在适当的时候缓存数据来提高性能。vlist 只会重绘当前能显示的条目。如果你要保存数据结构的话,建议使用一个CArry只保存PIDL,然后用另外CArry一个保存要显示的信息列结构体的指针,再把第二个CArry以地址的方法传给vlist ,然后开线程去计算其他的信息,每计算一条调用一次RedrawItem,当然线程的操作要小心。仔细观察expolore你会发现,某些列的重绘并不是及时的。比如一个音乐文件的时间

有没有人用activeX控件或者其它控件显示过chm文件的内容(Delphi VCL组件开发及应用 )

请教:如用使用HtmlHelpA函数调用chm文档的指定页面(Delphi VCL组件开发及应用)

是显示在delphi的form里就行,不是调用hh.exe

Use the webbrowser control.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/htmlhelp/html/vsconocxov.asp

The HTML Help ActiveX control is designed to work with Internet Explorer and the Shdocvw.dll component. It does not include the design-time support that is necessary to use it with development tools, such as Microsoft Visual Basic Scripting Edition and Microsoft Visual C++.

var

theAdd: OleVariant;

begin

theAdd := 'mk:@MSITStore:' + AppPath + 'GPHelp.chm::/index.html';

///ms-its:C:\i386\CALC.CHM::/calc_scientific.htm

WebBrowser1.Navigate(theAdd);

end;

Reference

http://community.borland.com/article/0,1410,27842,00.html

SHGetSpecialFolderLocation是干什么的(VC/MFC 基础类 )

SHGetSpecialFolderLocation用来取得代表一些虚拟目录ITEMIDLIST。

//获取桌面的IDL

LPITEMIDLIST pidlDesktop=NULL;

HRESULT hr = SHGetSpecialFolderLocation(hwnd,CSIDL_DESKTOP,&pidlDesktop);

if(FAILED(hr))

...{

...

}

else

...{

...

}

The long and sad story of the Shell Folders key

http://blogs.msdn.com/oldnewthing/archive/2003/11/03/55532.aspx

能否让我的应用程序以管理员的权限运行?就象通过管理员登陆后运行一样? (VC/MFC 基础类)

http://msdn.microsoft.com/library/en-us/secauthz/security/client_impersonation.asp

如何获得Web Browser中页面框架(frame iframe)内的元素(VB 网络编程 )

如果我们枚举Web Browser的Document对象中所有的元素,只能的页面框架的元素,请问怎样才能获得框架 src所指向页面的元素。

The capability of scripting across domain is affected by builtin security. Under "IE security settings" - "Miscellaneous", there are the options "Access data sources across domains" and "Navigate sub-frames across different domains".

Dim pFramesCol As IHTMLFramesCollection2

! Dim pDisp As Object

Dim IWindow2 As IHTMLWindow2

Dim i As Integer

! Dim varIndex As Variant

Dim frameDoc As IHTMLDocument2

Set pFramesCol = doc.frames

If Not pFramesCol Is Nothing Then

For i = 0 To pFramesCol.length - 1

varIndex = i

Set pDisp = pFramesCol.Item(varIndex)

! ' pDisp.QueryInterface IHTMLWindow2, IWindow2

! Set IWindow2 = pDisp

If Not IWindow2 Is Nothing Then

If Not IWindow2.Document Is Nothing Then <== Possible error may arise: Access Denied

Set frameDoc = IWindow2.Document

End If

End If

Next i

End If

webrowser.document.frames.item(index).all(i)

关于IHTMLDocument2接口(.NET技术 C# )

执行

IHTMLDocument2 doc = (IHTMLDocument2)axWebBrowser1.Document;

后发现:

可以正确进行 doc.write 操作,但访问doc的url和parentWindow属性运行的时候就提示错误

那个axWebBrowser1 是拖到对话框以后没有改任何设置的。

Document is not ready

handle DocumentComplete

http://support.microsoft.com/?kbid=312777

.net里面,怎么出来classWizard界面啊?我只会用vc6.0,.net不大会用(VC/MFC 基础类)

就是需要加消息处理函数,和虚拟函数继承的那个界面,在vc下面是快捷健:CTRL+W。.net下怎么做?

Visual C++ Concepts: Porting and Upgrading

Where Are ClassWizard and WizardBar in Visual C++ .NET?

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/vcgrfWhereIsClassWizardInVisualCNET.asp

如何设置WebBrowser控件显示内容的Html代码?(VB 控件)

如何设置WebBrowser显示页面的Html代码,WebBrowser可以显示制定的页面,但是我打算把页面的Html代码发送给WebBrowser进行显示,如何做呢?

WebBrowser1.Navigate2 "0", 0, "", "<HTML><DIV>我的内容</DIV></HTML>", ""

这行代码没作用啊.另外,我将网页文件放到资源文件中,然后读出来怎么就是乱码了呢?我想把网页放到资源文件中,防止用户改动内容,读出来后送给WebBrowser显示。

WebBrowser1.Navigate("about:blank")

WebBrowser1.Document.open

WebBrowser1.Document.writeln("<HTML>")

WebBrowser1.Document.writeln("<HEAD>")

WebBrowser1.Document.writeln("<TITLE>")

WebBrowser1.Document.writeln("New Document")

WebBrowser1.Document.writeln("</TITLE>")

WebBrowser1.Document.writeln("</HEAD>")

WebBrowser1.Document.writeln("<BODY>aaaa")

WebBrowser1.Document.writeln("</BODY>")

WebBrowser1.Document.writeln("</HTML>")

WebBrowser1.Document.Close

or

Navigate to about:blank

Wait for readyState to indicate "complete"

Get IPersistStreamInit interface from document

Call InitNew

Call Load

Wait for readyState to indicate "complete"

调用非托管 DLL 时,多层 struct/union 怎么 marshal (.NET技术 .NET Framework )

struct 的结构大概是这样

struct

...{

const char *psVal1;

const char *psVal2;

struct

...{

BYTE a1;

union ...{

BYTE bVal;

// some other variables.....

long lVal;

struct

...{

char *psVal;

WORD wVal;

};

struct ...{

WORD wVal;

BYTE *pbVal;

};

};

} stVal;

};

而且这个结构体的地址还要通过一个 callback 函数的 Int32 型参数传进来,只需要读,不需要写,应该怎么 Marshal 呢

最简单的方法就是在你的C++代码里写一个托管类为本地类marshal(就像你在COM Automation里干的一样.)

关于SHGetMalloc(&pMalloc) (VC/MFC 基础类)

是否windows将所有需要动态内存分配的(如new)shell对象,全都放在它自己管理的一个堆里?但是windows又不自己释放,需要用

SHGetMalloc(&pMalloc);来获得这个堆的指针,最后通过pMalloc->free(shellobj) 来释放分配的对象,最后再pMalloc->Release();释放自己对所有的动态创建的shellobj都适用吗?那什么时候调用pMalloc->Alloc来分配对象呢?用上面的方法后不需要调用它吗?

What's the difference between SHGetMalloc, SHAlloc, CoGetMalloc, and CoTaskMemAlloc

http://blogs.msdn.com/oldnewthing/archive/2004/07/05/173226.aspx

They are different code segments to do the same thing *now*. They used to do different things in history. In general, you should not implement IMalloc, instead using the COM implementation, which is guaranteed to be thread-safe in managing task memory. You get a pointer to the COM task allocator object's IMalloc through a call to the CoGetMalloc function.

SHFree can be used to free shell objects *allocated by* shelll functions

如何编程修改文件夹的属性? 比如隐藏(VC/MFC 基础类 )

The SetFileAttributes function sets the attributes for a file or directory.

http://msdn.microsoft.com/library/en-us/fileio/fs/retrieving_and_changing_file_attributes.asp

第一頁    上一頁    第1頁/共8頁    下一頁    最後頁
第01頁 第02頁 第03頁 第04頁 第05頁 第06頁 第07頁 第08頁 
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航