|
Hamid. wrote: C++ is different with C# some things are easy and some things are difficult to use.
off course! i am still learning it
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You
|
|
|
|
|
Really what did you learn ?
Of one Essence is the human race
thus has Creation put the base
One Limb impacted is sufficient
For all Others to feel the Mace
(Saadi )
|
|
|
|
|
Hi all,
How can I force the user to select only via dropdown, but not allowing him to edit in combobox?
Thanks,
Sunil.
Regards,
Sunil Kumar
|
|
|
|
|
Change the combobox style to CBS_DROPDOWNLIST [^]. You can change this in the resource editor. Look at the properties pane, and change the style selection.
|
|
|
|
|
open combo box properties and change style type to DropList
|
|
|
|
|
Thanks a lot,
The problem is solved.
Regards,
Sunil Kumar
|
|
|
|
|
I am trying to read the summary property of docx file, i used the following code but get HRESULT S_FALSE while reading ReadMultiple.
Here is the code:
#include <stdio.h>
#include <windows.h>
#include <ole2.h>
#include <locale.h>
// Dumps simple PROPVARIANT values.
void DumpPropVariant(PROPVARIANT *pPropVar) {
// Don't iterate arrays, just inform as an array.
if(pPropVar->vt & VT_ARRAY)
{
printf("(Array)\n");
return;
}
// Don't handle byref for simplicity, just inform byref.
if(pPropVar->vt & VT_BYREF)
{
printf("(ByRef)\n");
return;
}
// Switch types.
switch(pPropVar->vt) {
case VT_EMPTY:
printf("(VT_EMPTY)\n");
break;
case VT_NULL:
printf("(VT_NULL)\n");
break;
case VT_BLOB:
printf("(VT_BLOB)\n");
break;
case VT_BOOL:
printf("%s (VT_BOOL)\n",
pPropVar->boolVal ? "TRUE/YES" : "FALSE/NO");
break;
case VT_I2: // 2-byte signed int.
printf("%d (VT_I2)\n", (int)pPropVar->iVal);
break;
case VT_I4: // 4-byte signed int.
printf("%d (VT_I4)\n", (int)pPropVar->lVal);
break;
case VT_R4: // 4-byte real.
printf("%.2lf (VT_R4)\n", (double)pPropVar->fltVal);
break;
case VT_R8: // 8-byte real.
printf("%.2lf (VT_R8)\n", (double)pPropVar->dblVal);
break;
case VT_BSTR: // OLE Automation string.
{
// Translate into ASCII.
char dbcs[1024];
char *pbstr = (char *)pPropVar->bstrVal;
int i = wcstombs(
dbcs, pPropVar->bstrVal, *((DWORD *)(pbstr-4)));
dbcs[i] = 0;
printf("%s (VT_BSTR)\n", dbcs);
}
break;
case VT_LPSTR: // Null-terminated string.
{
printf("%s (VT_LPSTR)\n", pPropVar->pszVal);
}
break;
case VT_FILETIME:
{
char *dayPre[] =
{"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
FILETIME lft;
FileTimeToLocalFileTime(&pPropVar->filetime, &lft); SYSTEMTIME lst;
FileTimeToSystemTime(&lft, &lst);
printf("%02d:%02d.%02d %s, %s %02d/%02d/%d (VT_FILETIME)\n",
1+(lst.wHour-1)%12, lst.wMinute, lst.wSecond,
(lst.wHour>=12) ? "pm" : "am",
dayPre[lst.wDayOfWeek%7],
lst.wMonth, lst.wDay, lst.wYear);
}
break;
case VT_CF: // Clipboard format.
printf("(Clipboard format)\n");
break;
default: // Unhandled type, consult wtypes.h's VARENUM structure.
printf("(Unhandled type: 0x%08lx)\n", pPropVar->vt);
break;
}
}
// Dump's built-in properties of a property storage.
void DumpBuiltInProps(IPropertySetStorage *pPropSetStg) {
printf("\n==================================================\n");
printf("BuiltInProperties Properties...\n");
printf("==================================================\n");
IPropertyStorage *pPropStg = NULL;
HRESULT hr;
PROPVARIANT propRead;
HRESULT Enum(IEnumSTATPROPSETSTG** PropEnum);
// Open summary information, getting an IpropertyStorage.
hr = pPropSetStg->Open(FMTID_SummaryInformation,
STGM_READ | STGM_SHARE_EXCLUSIVE, &pPropStg);
if(FAILED(hr))
{
printf("No Summary-Information.\n");
return;
}
// Array of PIDSI's you are interested in.
struct pidsiStruct {
char *name;
long pidsi;
} pidsiArr[] = {
{"Title", PIDSI_TITLE}, // VT_LPSTR
{"Subject", PIDSI_SUBJECT}, // ...
{"Author", PIDSI_AUTHOR},
{"Keywords", PIDSI_KEYWORDS},
{"Comments", PIDSI_COMMENTS},
{"Template", PIDSI_TEMPLATE},
{"LastAuthor", PIDSI_LASTAUTHOR},
{"Revision Number", PIDSI_REVNUMBER},
{"Edit Time", PIDSI_EDITTIME}, // VT_FILENAME (UTC)
{"Last printed", PIDSI_LASTPRINTED}, // ...
{"Created", PIDSI_CREATE_DTM},
{"Last Saved", PIDSI_LASTSAVE_DTM},
{"Page Count", PIDSI_PAGECOUNT}, // VT_I4
{"Word Count", PIDSI_WORDCOUNT}, // ...
{"Char Count", PIDSI_CHARCOUNT},
{"Thumpnail", PIDSI_THUMBNAIL}, // VT_CF
{"AppName", PIDSI_APPNAME}, // VT_LPSTR
{"Doc Security", PIDSI_DOC_SECURITY}, // VT_I4
{0, 0}
};
// Count elements in pidsiArr.
int nPidsi = 0;
for(nPidsi=0; pidsiArr[nPidsi].name; nPidsi++);
// Initialize PROPSPEC for the properties you want.
PROPSPEC *pPropSpec = new PROPSPEC [nPidsi];
PROPVARIANT *pPropVar = new PROPVARIANT [nPidsi];
for(int i=0; i<npidsi; i++)="">
{
ZeroMemory(&pPropSpec[i], sizeof(PROPSPEC));
pPropSpec[i].ulKind = PRSPEC_PROPID;
pPropSpec[i].propid = pidsiArr[i].pidsi;
}
// Read properties.
hr = pPropStg->ReadMultiple(nPidsi, pPropSpec, pPropVar);
if(FAILED(hr)) // HERE I GOT hr = S_FALSE
{
printf("IPropertyStg::ReadMultiple() failed w/error %08lx\n", hr);
}
else
{
int i;
// Dump properties.
for(i=0; i<npidsi; i++)="">
{
printf("%16s: ", pidsiArr[i].name);
DumpPropVariant(pPropVar + i);
}
}
// De-allocate memory.
delete [] pPropVar;
delete [] pPropSpec;
// Release obtained interface.
pPropStg->Release();
}
// Dump's custom and built-in properties of a compound document.
void DumpProps(char *filename) {
// Translate filename to Unicode.
WCHAR wcFilename[1024];
setlocale( LC_ALL, "" );
int i = mbstowcs(wcFilename, filename, strlen(filename));
setlocale( LC_ALL, "C" );
wcFilename[i] = 0;
IPropertySetStorage *pPropSetStg = NULL;
HRESULT hr;
hr = ::StgOpenStorageEx(wcFilename, STGM_READ | STGM_SHARE_EXCLUSIVE, STGFMT_ANY,
0, NULL, NULL, IID_IPropertySetStorage, (void**)&pPropSetStg);
if(FAILED(hr))
{
printf("QI for IPropertySetStorage failed w/error %08lx", hr);
pStorage->Release();
return;
}
// Dump properties.
DumpBuiltInProps(pPropSetStg);
// Release obtained interfaces.
pPropSetStg->Release();
}
// Program entry-point.
void main(int argc, char **argv) {
char *s;
DumpProps("1.docx");
scanf("%s",&s);
}
|
|
|
|
|
If you want someone to even try to look at your code, read the posting guidelines at the top of the forum, They're there for a good reason.
Hint: pre tag.
Also, choosing an actual name, rather than a number helps.
Lastly, a bit more of a question please! What have you tried? Etc. Have you looked for CP articles that may help? Examples on MSDN? etc.
Iain.
Plz sir... CPallini CPallini abuz drugz, plz plz help urgent.
|
|
|
|
|
I need to write a console application which would get me the list of users in a particular system and their corresponding user account privilege (Administrator, Guest, User, etc.). How could I do this ?
Thanks in advance.
|
|
|
|
|
See GetUserNameEx and LookupAccountName .
|
|
|
|
|
Hi all,
i want to know how can i use Enter key in TreeCtrl?
i want to use this same as LButtonDown function.
i m using Lbuttondown like this.
void CMyTree::OnLButtonDown(UINT nFlags, CPoint point)
{
CTreeView::OnLButtonDown(nFlags, point);
CTreeCtrl& tc = GetTreeCtrl();
UINT uFlags = 0;
HTREEITEM hItem = tc.HitTest(point, &uFlags);
if(!hItem)
return;
tc.SelectItem(hItem);
tc.SetFocus();
CString Previous_File;
CString Tree_str = tc.GetItemText(hItem);
CMainFrame *pMainFrame=(CMainFrame*)AfxGetMainWnd();
if (Tree_str==_T("Str"))
{
AfxMessageBox(Tree_str);
}
please anybody can tell me how can i do this.
Thanks in advance.
IN A DAY, WHEN YOU DON'T COME ACROSS ANY PROBLEMS - YOU CAN BE SURE THAT YOU ARE TRAVELLING IN A WRONG PATH
|
|
|
|
|
ThatsMe. wrote: i want to use this same as LButtonDown function.
Handle WM_KEYDOWN message and inside the message check the key pressed is enter.
void CMyTree::OnKeyDown( UINT nChar, UINT nRepCnt, UINT nFlags )
{
if( nChar == VK_RETURN )
{
}
|
|
|
|
|
how can i get the string of treectrl on which i enter the key?
thanks
IN A DAY, WHEN YOU DON'T COME ACROSS ANY PROBLEMS - YOU CAN BE SURE THAT YOU ARE TRAVELLING IN A WRONG PATH
|
|
|
|
|
You can use of CTreeCtrl::GetItemText for get string of an item.
|
|
|
|
|
this is right syntax;
CString GetItemText( HTREEITEM hItem ) ;
how can i enter HTREEITEM hItem ,on enter the key,
IN A DAY, WHEN YOU DON'T COME ACROSS ANY PROBLEMS - YOU CAN BE SURE THAT YOU ARE TRAVELLING IN A WRONG PATH
|
|
|
|
|
Did you see MSDN see an example of MSDN:
HTREEITEM hCurSel = m_TreeCtrl.GetNextItem(TVI_ROOT, TVGN_CARET);
// report it to the user
if (hCurSel == NULL)
{
AfxMessageBox(_T("There is no selected item"));
}
else
{
CString str;
str.Format(_T("The currently selected item is \"%s\""),
(LPCTSTR)m_TreeCtrl.GetItemText(hCurSel));
AfxMessageBox((LPCTSTR)str);
}
|
|
|
|
|
Thanks now it is working.
IN A DAY, WHEN YOU DON'T COME ACROSS ANY PROBLEMS - YOU CAN BE SURE THAT YOU ARE TRAVELLING IN A WRONG PATH
|
|
|
|
|
Very good.
|
|
|
|
|
Given a stack S and a queue Q, write a program in OOP (C++)that have 2 procedures FILLQ_WITHS will empty the contents of the stack S and insert them into the Queue Q and FillS_WithQ which will fill the stack S with the elements deleted from the queue Q. Impliment the procedure with S and having an array representation.
plz do this as soon as possible
|
|
|
|
|
|
|
That so should be a site. Maybe pointing to CPallini's freesoftware site?
Iain.
Plz sir... CPallini CPallini abuz drugz, plz plz help urgent.
|
|
|
|
|
|
Qasimsha wrote: plz do this as soon as possible
You dont need to request. just order..
"DO THIS AS SOON AS POSSIBLE"
|
|
|
|
|
You can write your program and ask of us your problem but you wrote your question and then you said "plz do this as soon as possible".
please read "How to get an answer to your question " first post at this forum.
BTW you are lucky toxcct isnt here,now.
|
|
|
|
|