|
Trying to read a REG_SZ registry I obtained a 234 value in return. Why?
I used RegQueryValueEx
Other readings were ok?
36. When you surround an army, leave an outlet free.
...
Do not press a desperate foe too hard.
SUN-TZU - Art of War
|
|
|
|
|
Hint (winerror.h):
//
// MessageId: ERROR_MORE_DATA
//
// MessageText:
//
// More data is available.
//
#define ERROR_MORE_DATA 234L
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
|
|
|
|
|
I have read winerror.h. The problem is that I don't understand why the error appears, because I provided all the necessary data
36. When you surround an army, leave an outlet free.
...
Do not press a desperate foe too hard.
SUN-TZU - Art of War
|
|
|
|
|
RomTibi wrote: I provided all the necessary data
But you don't provide a sufficient large buffer (the buffer pointed by lpData ) and the RegQueryValueEx is notifying it to you
(MSDN about RegQueryValueEx , see [^]):
If the buffer specified by lpData parameter is not large enough to hold the data, the function returns ERROR_MORE_DATA and stores the required buffer size in the variable pointed to by lpcbData. In this case, the contents of the lpData buffer are undefined.
In such conditions, *lpcbData is the (minimum) required size for the buffer.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
|
|
|
|
|
Thanks!
That was my case too...
36. When you surround an army, leave an outlet free.
...
Do not press a desperate foe too hard.
SUN-TZU - Art of War
|
|
|
|
|
(I don't know if I should post this in the XML forum or here, I flipped the coin and it falls here)
I have a comment in in a section of an XML like :
<Command id="myCommand">
<!-- ... this is a comment -->
<Data name="X1"></Data>
<Data name="X2"></Data>
<Data name="X3"></Data>
<Data name="X4"></Data>
<Data name="X5"></Data>
</Command>
I parse the XML with something like that :
MSXML2::IXMLDOMNodeListPtr pXMLNodeList;
long lCount;
HRESULT hr;
hr = pXMLNode->get_childNodes(&pXMLNodeList);
hr = pXMLNodeList->get_length(&lCount);
if (FAILED(hr))
{
ASSERT( 0 );
return;
}
for (int i = 0; i < lCount; i++)
{
MSXML2::IXMLDOMNodePtr pXMLNode;
hr = pXMLNodeList->get_item(i, &pXMLNode);
if (FAILED(hr))
{
ASSERT( 0 );
return;
}
CString stmp = MyParser::GetnodeName(pXMLNode );
if ( stmp.Compare( "Data" ) == 0 )
{
TRACE("Tata\n");
}
}
When I read the count with pXMLNodeList->get_length(&lCount); it returns 6, the 5 <Data> and the comment line.
When I do the MyParser::GetnodeName(pXMLNode ); for the comment line it returns "#comment"
I'm not certain if it's normal and if there is a better when than doing a Compare to skip the comment line ?
Thanks.
Max.
|
|
|
|
|
Instead of using get_childNodes property that returns any type of node, use the selectNodes method and the appropriate XPath expression to retrieve only what you want.
"We make a living by what we get, we make a life by what we give." --Winston Churchill
|
|
|
|
|
Hi all,
I have a problem, and I would appreciate very much if someone
could help me; I need to solve it by tomorrow
I have compiled a executable in "Release" mode in VC2005, and
when I copied it to another PC, not having VS installed. I get
following error, when trying to run it:
This application has failed to start because the application configuration is incorrect. Reinstalling this application may fix problem.
I also copied two dll files: mfc80.dll, and mfc80d.dll, but doesnt help
|
|
|
|
|
Your best bet is to install the redistributables with your app, vcredist_x86.exe. Most likely located in your "visual studio install dir"\SDK\v2.0\BootStrapper\Packages directory
Why is common sense not common?
Never argue with an idiot. They will drag you down to their level where they are an expert.
Sometimes it takes a lot of work to be lazy
Individuality is fine, as long as we do it together - F. Burns
|
|
|
|
|
|
|
Hi
I am trying to use Web browser control in win32 application in VS2005(not MFC). I have addded this control to the toolbox from COM component list. But I can not drag and drop this newly added control to the to the dialog window.
I am able to do and work with the web browser control in MFC application and it works fine there but I am unable to add this control to win32 application.
Please help me, how I can add web browser control to win32 application.
If it is not possible to drag and drop this control to win32 application, please directed me to any thread when I can find how to add this control programmatically to win32 application in VS.
I will appreciate you help and rate everybody who will try to help me.
Thank you.
|
|
|
|
|
Site—The object supplied by a container to a contained object through IOleObject::SetClientSite. Containers of an ActiveX object must supply a site before doing anything else. MSHTML gets much of its information about its geometry, activation, and ambient properties from its container site. MSHTML supplies a site for each ActiveX control it hosts.
Reusing MSHTML[^]
|
|
|
|
|
|
Is there a correct, documented way to get the parent folder given a full LPITEMIDLIST for a file system item.
For example: Assuming I have the itemlist that represents 'c\windows\system32', how can I get the itemlist that represents 'c\windows' ?
SHBindToParent() will give me an IShellPointer for the original folder but does not otherwise, in any obviousl way, help navigate the file system hierarchy.
Thanks for any clues.
|
|
|
|
|
There used to be an article in the MSDN called "Working with item ID lists", which does not appear to be in the current online MSDN. In it there was defined a sample function:
The following function takes a PIDL and changes it to its parent by removing the last item in the list.
BOOL GetParentID(LPITEMIDLIST pidl)
{
BOOL fRemoved = FALSE;
if (pidl == NULL)
return(FALSE);
if (pidl->mkid.cb)
{
LPITEMIDLIST pidlNext = pidl;
while (pidlNext)
{
pidl = pidlNext;
pidlNext = GetNextItemID(pidl);
}
pidl->mkid.cb = 0;
fRemoved = TRUE;
}
return fRemoved;
}
|
|
|
|
|
Thanks Roger,
I eventually realised that ILFindLastID is documented. As such one could reasonably infer the purpose is to walk back along the ITEMLIST.
|
|
|
|
|
Hi, I've migrated from old VC++6 to VC++2005. Back then I could apply WinXP look to my app's as described in "Add Windows XP Theme Style to your current projects" article by Jiang Hong.
When I try to do same in VS2005, nothing happens, no Win XP style look!
Does anyone know how to do this on VS2005?
Thanks!
|
|
|
|
|
why don't you ask in the forum at the bottom of the article you're refering instead ? the author would probably know the answer better than us.
|
|
|
|
|
josip cagalj wrote: Does anyone know how to do this on VS2005?
VS2K5 automatically adds a manifest now, whereas VC++ 6 didn't. To add the XP style manifest info, rather than add a custom resource, go to Project Properties > Configuration Properties > Manifest Tool > Input and Output > Additional Manifest Files and specify your XML manifest file there.
|
|
|
|
|
There are a lot of ways to make it work on VS2005 or 2008. This is mine:
1.- Add the InitCommonControls() call at the very beggining of your program.
2.- On the stdafx.h file, add this line: #include "commctrl.h"
On the properties of your project:
3.- On Linker/Manifest File make sure the generate manifest entry is set to "Yes"
4.- On Linker/Command Line add "comctl32.lib" (without the cuotes).
5.- On Manifest Tool/Input and Output, set the "Aditional Manifest File" to $(IntDir)\XPCommonControls.manifest
Finally create a new text file with this code and save it as "XPCommonControls.manifest" on the same folder than your .exe
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestversion="1.0">
<dependency>
<dependentassembly>
<assemblyidentity>
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"/>
</assemblyidentity></dependentassembly>
</dependency>
</assembly>
Wish you luck
rotter
|
|
|
|
|
I did as you told me, bur when building i get this error message:
Linking...<br />
Embedding manifest...<br />
.\Debug\XPCommonControls.manifest : general error c1010070: Failed to load and parse the manifest. The system cannot find the file specified.
When you said
rotter512 wrote: On Manifest Tool/Input and Output, set the "Aditional Manifest File" to $(IntDir)\XPCommonControls.manifest
did you mean I had to put file path instead of 'IntDir' like $(c:\..\..)\XPCommonControls.manifest, or just leave it as it is ($(IntDir)\XPCommonControls.manifest)?
Anyway in booth cases I get message "Failed to load and parse the manifest"
modified on Thursday, December 13, 2007 7:41:38 AM
|
|
|
|
|
|
Hi,
I have written text to a device context using "dc.DrawText()" onto a transparent background. The text needs to move, but it leaves the old text on the DC, which just causes a long black smudge. As I mentioned, the background is transparent, so I cant just blit the background again.
I have noticed that calling ShowWindow(SW_HIDE); then re-showing it clears the text, however I make the text move from within the OnPaint method, which obviously causes problems if I hide/show it constantly.
Does anyone have any ideas as to how I can remove the text?
Thanks.
MS.
|
|
|
|
|
Mr Simple wrote: however I make the text move from within the OnPaint method
Is it a good idea?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
|
|
|
|