|
How can I get serial number of hard drive in Win32?
|
|
|
|
|
G'day Vaslieyev,
One way that I know of is with the ::GetVolumeInformation() function. There may be other ways though.
Hope this helps.
Steve
|
|
|
|
|
Check out the GetVolumeInformation() win32 api function...
CString sRootPath = "C:\\";
char sVolumeNameBuffer[MAX_PATH];
char sFileSysNameBuffer[256];
DWORD nFileSystemFlags = NULL;
DWORD nVolSerialNumber = NULL;
DWORD nMaxFNameLen = NULL;
::SetErrorMode(SEM_FAILCRITICALERRORS);
::GetVolumeInformation((LPCTSTR)sRootPath,
sVolumeNameBuffer,
sizeof(sVolumeNameBuffer),
&nVolSerialNumber,
&nMaxFNameLen,
&nFileSystemFlags,
sFileSysNameBuffer,
sizeof(sFileSysNameBuffer));
|
|
|
|
|
I'm having a hard time forcing my ATL control to size itself.
I tried SetWindowPos and MoveWindow. They each return 1, meaning "OK", but the control never changes size.
Is there something else I need to do to make the resize happen?
(i'm testing it on an MFC dialog app, but i want to be able to use this anywhere).
-c
|
|
|
|
|
When Creating you ATL Control make sure that you expose the AutoSize Stock Property. Then in the InitialUpdate or InitDialog Function of your app set the AutoSize Property = false; I suppose that alternately you can find some mechanism to set it inside the control to always be false, but I just did a quick run through and didn't dig to deeply.
|
|
|
|
|
(I hope this is in the right forum).
I want to get the contents (in source code) of a CHTMLView after it has loaded into a CString. I am currently overriding the OnDownloadComplete virtual function, and attempting to get the documnts html using the GetHtmlDocument() function. The only problem is that it is of type IDispatch rather than a CString, so I can't use how I wanted to.
Can anybody help me to get the contents of the CHTMLView into a CString?
Thanks in advance,
James Corrie
|
|
|
|
|
Hi everyone,
I need help with converting Text Files into Access table and hope you can help me out.
I have 2 TEXT FILES, first that contains the table name, and its attribues, and the SECOND file contains the values of the table.
So if the first TEXT FILE that has the following table values:
tablename
field1, integer
field2, string
field3, integer
field4, string
then another TEXT FILE will contains the values for the table:
1, john, 6, smith
2, steve, 7, clark
3, carrie, 8, wayne
4, dan, 9, chait
5, erin, 10, alan
what i need to do is to read the values from the FIRST TEXT FILE that contains the table attributes and create the table.
Then i need to read the SECOND TEXT FILE and plug in the values. so at the end, i'll have a Access table like:
field1 field2 field3 field4
1 john 6 smith
2 steve 7 clark
3 carrie 8 wayne
4 dan 9 chait
5 erin 10 alan
But i need the readings of BOTH TEXT FILES to be dynamic so it'll work if the TEXT FILE has x number of columns, and x number of rows.
and i also need the reading to be dynamic so it can read the values from the SECOND TEXT FILE no matter what kind of values it contains, ie, integer, string, char, etc...
If anyone can help me out, Please let me know.
Thanks in Advance.
Steve
|
|
|
|
|
I have problem of finding the curson's position!! When the curson is not inside the program that I create!!!!
|
|
|
|
|
Check out the AttachThreadInput() Win32 API call.
Sorry, that's the best I can provide without spending a lot of time trying it out myself.
|
|
|
|
|
The following code gets the current mouse position :
POINT point;
GetCursorPos(&point);
The problem is to get this code called whenever the
mouse moves. WM_MOUSEMOVE only generates messages
when in the application window. The only way I have
found to do it is as follows:
1) add a WM_TIMER message to your application
2) code it as follows :
void YOUR_CLASS::OnTimer(UINT nIDEvent)
{
CDialog::OnTimer(nIDEvent);
POINT point;
GetCursorPos(&point);
3) start the timer :
SetTimer(1,200,NULL);
|
|
|
|
|
But is it possible to create a rebar that is permanently attached at the bottom edge of the frame, just above the status bar (and support show/hide also)?
|
|
|
|
|
How do convert an BSTR to an LPSTR.
I got the wrong value with this code:
CComBSTR strChatter("asdf");
char *cmdLine;
cmdLine = (char *) strChatter.m_str;
Im new on this and look forward to an answer.
Regards Jonas
|
|
|
|
|
Try this (no guarantees):
_bstr_t myBstr("asdf");
char cmdLine[256];
lstrcpy(cmdLine, (LPCTSTR)myBstr);
|
|
|
|
|
This works:
void CBstrtestView::OnButton1()
{
/* This approach uses the powerful conversion macros built into ATL
A2OLE and OLE2A are just 2 of a number of these macros.
This fragment is from an MFC test project that has included
atlbase.h and atlcom.h
*/
USES_CONVERSION; // the ATL conversion macro setup
TCHAR sTestIn[100];
// get some text into a TCHAR string
GetDlgItemText(IDC_EDIT1, sTestIn, 100);
BSTR bstrText;
bstrText = SysAllocString(A2OLE(sTestIn));
SetDlgItemText(IDC_EDIT2, OLE2A(bstrText));
SysFreeString(bstrText);
}
Look for the "String Conversion Macros" item under ATL Macros and Global Functions
|
|
|
|
|
I have 2 CStrings one has 2 dashs in it eg test1-test2-test3.txt
the other one has 3 dashs in it. eg test1-test2-test3-test4.txt
I need some code to find the one with the 3 dashs and kill the file.
I'm in a while loop but and have been trying to get the find to work right
I can find the first - but how do I continue on from there ?
Thanks in advance for any help
|
|
|
|
|
Maybe just count the number of '-' in the string ...
CString testString = "test1-test2-test3--.txt";
int numberFound = 0;
for (int i=0; i<testString.GetLength(); i++)
if (testString.GetAt(i) == '-') numberFound++;
|
|
|
|
|
Phil first thanks
I don't know if it was a typo but the i<testString would not compile
I changed it to i&testString and then it compiled fine but it's just
returning a UAB what is that ?
|
|
|
|
|
I am having problems formatting the "less than sign"
(it thinks it is a start of a html tag).
CString testString = "test-1test-2test3.txt";
int numberFound = 0;
for (int i=0; i LESS_THAN_SIGN testString.GetLength(); i++)
if (testString.GetAt(i) == '-')numberFound++;
the GetLength() is a member function of the CString class
|
|
|
|
|
int CountCharacters(CString sString, char cChar)
{
int nLen = sString.GetLength();
int nFound = 0;
if (cChar == '\0'
{
nFound = nLen;
}
else
{
for (int nIndex = 0; nIndex < nLen; nIndex++)
{
nFound += ((sString[nIndex] == cChar) ? 1 : 0);
}
}
return nFound;
}
//in the calling function, put this:
if (CountCharacters(myString, '-') == 3)
{
// ... do something ...
}
|
|
|
|
|
I'm getting this error. any clues ?
'CountCharacters' : local function definitions are illegal
|
|
|
|
|
I think that you put the CountCharacters() function INSIDE of an existing function. Place it at the end of your CPP file (and remember to declare it at the top of the CPP file or in the .H file)
|
|
|
|
|
Yeah, you've coopy the CountCharacters() function into another function.
While this is a valid construct in Pascal, it's a no-no in C/C++.
|
|
|
|
|
Hi,
Try this function to count the dashes:
int CountChar(CString str, TCHAR ch)
{
int found = 0;
int start = 0;
start = str.Find(ch, start);
while (start => 0)
{
found++;
start = str.Find(ch, start);
}
return found;
}
I wrote this while replying, so I didn't try that. Should work...
Paolo.
|
|
|
|
|
I have a CPropertySheet with stacked tabs. How can I find the total height of the stacked tabs. I add / remove various tabs in realtime, so the height will change!]
Thanks to anyone that can help!
|
|
|
|
|
Hi,
I wrote a small application which has a dialog box as UI. I put a BMP as background. The problem is when the user uses large fonts my dialog has a strange behavior... Is there an API to know if the large fonts are activated (so I can use several BMP !)
Thank you !
|
|
|
|