|
Sorry..
It doesn't work...
I have to create a chm using MFC and display its contents on UI(which should be similar to chm)..Suppose if i press some button like Help in the menu,the chm should be launched..I should first create the chm header,content etc and then load it and display it..
Can Anyone Help?????????
|
|
|
|
|
zxc89 wrote: It doesn't work...
What code did you use?
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"There is no death, only a change of worlds." - Native American Proverb
|
|
|
|
|
|
I had already seen that..It didn't help me!!
Anyways..Thanks
|
|
|
|
|
|
I had already seen that..It didn't help me!!
Anyways..Thanks
|
|
|
|
|
hai to all
i want to do an application so that i can select a directory and by monitoring the selected directory i need to report the changes made in that directory.
For that i have used a browse button to select the directory and displayed the selected directory to be monitored in the edit box.
for this i have written like this :
BROWSEINFO bi;
TCHAR m_DisplayName[MAX_PATH];
m_DisplayName[0]='\0';
memset(&bi, 0x00, sizeof(bi));
bi.hwndOwner = this->m_hWnd;
bi.pszDisplayName = m_DisplayName;
bi.ulFlags = BIF_EDITBOX;
LPITEMIDLIST pidl = SHBrowseForFolder(&bi);
if (pidl)
SHGetPathFromIDList(pidl, m_DisplayName);
GetDlgItem(IDC_EDIT)->SetWindowText(m_DisplayName);
Next i need a list control for displaying the changed directory files with
column path and size and date.
here my problem is how can i map the column path,size,date of the directory files to the columns in the listcontrol.
|
|
|
|
|
Create a CListCtrl in your project,
use InsertColumn to create the path, size and date columns,
use SetItem/InsertItem to modify/add entries in the CListCtrl
~RaGE();
|
|
|
|
|
Use ReadDirectoryChangesW() or FindFirstChangeNotification() .
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"There is no death, only a change of worlds." - Native American Proverb
|
|
|
|
|
|
hai whitesky
the link which u have send is helpful to me.Thanks alot.
there is a small problem here.ihave a browse button through i will select the path of the directory to which i need to monitor.
To get that one i have used a variable to store the path .Now iwant that variable to be placed in the place where a predefined path is mentioned.
But when place that variable there a error message that:Undeclared Identifier is coming.
what should i do to give the path which i want to moniter.
|
|
|
|
|
keerthikaaa wrote: what should i do to give the path which i want to moniter.
Without seeing the relevant code snippet, it's impossible to say.
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"There is no death, only a change of worlds." - Native American Proverb
|
|
|
|
|
hai DavidCrow
here i am sending u the code
<void ThreadRoute1( void* arg )
{
USES_CONVERSION;
HANDLE hDir = CreateFile(m_sResults, // pointer to the file name
FILE_LIST_DIRECTORY, // access (read/write) mode
FILE_SHARE_READ|FILE_SHARE_DELETE, // share mode
NULL, // security descriptor
OPEN_EXISTING, // how to create
FILE_FLAG_BACKUP_SEMANTICS, // file attributes
NULL // file with attributes to copy
);
FILE_NOTIFY_INFORMATION Buffer[1024];
DWORD BytesReturned;
while( ReadDirectoryChangesW(
hDir, // handle to directory
&Buffer, // read results buffer
sizeof(Buffer), // length of buffer
TRUE, // monitoring option
FILE_NOTIFY_CHANGE_SECURITY|
FILE_NOTIFY_CHANGE_CREATION|
FILE_NOTIFY_CHANGE_LAST_ACCESS|
FILE_NOTIFY_CHANGE_LAST_WRITE|
FILE_NOTIFY_CHANGE_SIZE|
FILE_NOTIFY_CHANGE_ATTRIBUTES|
FILE_NOTIFY_CHANGE_DIR_NAME|
FILE_NOTIFY_CHANGE_FILE_NAME, // filter conditions
&BytesReturned, // bytes returned
NULL, // overlapped buffer
NULL// completion routine
))
{
CTime tm = CTime::GetCurrentTime();
CString helper_txt;
switch(Buffer[0].Action)
{
case FILE_ACTION_ADDED: helper_txt = "The file was added to the directory"; break;
case FILE_ACTION_REMOVED: helper_txt = "The file was removed from the directory"; break;
case FILE_ACTION_MODIFIED: helper_txt = "The file was modified. This can be a change in the time stamp or attributes."; break;
case FILE_ACTION_RENAMED_OLD_NAME: helper_txt = "The file was renamed and this is the old name."; break;
case FILE_ACTION_RENAMED_NEW_NAME: helper_txt = "The file was renamed and this is the new name."; break;
}
int i=0;
do
{
m_Sec.Lock();
int item = pList1->InsertItem(pList1->GetItemCount(), CString(Buffer[i].FileName).Left(Buffer[i].FileNameLength / 2) + " - " + helper_txt );
pList1->SetItemText(item, 1, tm.Format("%Y/%m/%d/ - %H:%M:%S"));
i++;
m_Sec.Unlock();
}
while (!Buffer[i].NextEntryOffset);
}
}
void CFileSpyView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit();
pList1 = &m_List1;
m_List1.InsertColumn(0, CString("Path"), LVCFMT_LEFT, 100, 0 );
m_List1.InsertColumn(2, CString("Date/Time occured"), LVCFMT_LEFT, 100, 1 );
}
oid CFileSpyView::OnBrowse()
{
// TODO: Add your control notification handler code here
BROWSEINFO bi;
TCHAR m_DisplayName[MAX_PATH];
m_DisplayName[0]='\0';
memset(&bi, 0x00, sizeof(bi));
bi.hwndOwner = this->m_hWnd;
bi.pszDisplayName = m_DisplayName;
bi.ulFlags = BIF_EDITBOX;
LPITEMIDLIST pidl = SHBrowseForFolder(&bi);
if (pidl)
SHGetPathFromIDList(pidl, m_DisplayName);
//GetDlgItem(IDC_EDIT)->SetWindowText(m_DisplayName);
// UpdateData(TRUE);
m_sResults=m_DisplayName;
UpdateData(FALSE);
Dir=m_sResults;
}
void CFileSpyView::OnBstart()
{
// TODO: Add your control notification handler code here
_beginthread( ThreadRoute1, 0, 0 );
}
void CFileSpyView::OnBstop()
{
// TODO: Add your control notification handler code here
_endthread();
}
>
here when i click the browse button a dailog opens to select adirectory and when when i click the start button the threads starts by monitoring the selceted directory and thread stops when i click the stop button.
the selected directory path i have stored in the edit box variable and i have used it to create the directory in the thread .But i am not able to get that directory monitored.
when i place a "c:\\"in the directory place instead of variable i can get only the specified path monitored.
i want the path which i have selected to be monitored.
Thanks in advance
|
|
|
|
|
keerthikaaa wrote: _beginthread( ThreadRoute1, 0, 0 );
Why are you not using AfxBeginThread() here?
keerthikaaa wrote: ...i have used it to create the directory in the thread .
Where?
keerthikaaa wrote: when i place a "c:\\"in the directory place instead of variable i can get only the specified path monitored.
What else would you expect?
keerthikaaa wrote: i want the path which i have selected to be monitored.
What is the value of m_sResults ?
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"There is no death, only a change of worlds." - Native American Proverb
|
|
|
|
|
I am trying to get a program to download from an ftp site, this works fine, but i need the program to be able to resume, i have used the REST command and sent it the start point to resume from, but it doesnt seem to work. i open the file i am downloading to and set the start point, this seem ok, but the download file start point doesnt seem to work, this just starts downloading from the begining again, so what i end up with is a file that is bigger than the file been downloaded...
can anyone shed some light on where i may be going wrong ??
Thanks
Lee
|
|
|
|
|
Hai To All Members,
Can Any one Explain if select one the predefined Registry Root Key then monitor all sub keys of that root registry key . i Know one thing by using threads it is easy to monitor but i dont know how ?
And display if any changes occures when begin the monitoring in a list control..........
Plz Help Me........
|
|
|
|
|
To enumerate the subkeys, use this function:
LONG RegEnumKeyEx(
HKEY hKey,
DWORD dwIndex,
LPTSTR lpName,
LPDWORD lpcbName,
LPDWORD lpReserved,
LPTSTR lpClass,
LPDWORD lpcbClass,
PFILETIME lpftLastWriteTime
);
To monitor keys, use this function:
LONG RegNotifyChangeKeyValue(
HKEY hKey,
BOOL bWatchSubtree,
DWORD dwNotifyFilter,
HANDLE hEvent,
BOOL fAsynchronous
);
~RaGE();
|
|
|
|
|
See here.
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"There is no death, only a change of worlds." - Native American Proverb
|
|
|
|
|
I have a function in a DLL which takes varargs. I only have the header file of the DLL. Is there a way how i can provide a wrapper for the function with varargs?
For e.g. if the function definition is as follows:
<br />
int average( int first, ... );
..how can i provide a wrapper for it? I'm stuck here:
<br />
int averageWrap(int first, ...)<br />
{<br />
return average(first, ... );<br />
}<br />
Thanks
_________________________
Kri5
-- modified at 5:50 Thursday 13th April, 2006
|
|
|
|
|
Have a look at the functions va_arg, va_end, va_start .
~RaGE();
|
|
|
|
|
Those are for iterating through the parameters one by one. I need to be able to fetch them and pass them on to the function i am wrapping...i don't think those functions can help me.
_________________________
Kri5
-- modified at 9:04 Thursday 13th April, 2006
|
|
|
|
|
i'm not sure you can.
many libraries that export "..." functions also export va_list versions specifically so people can build layers on top of those functions.
Cleek | Image Toolkits | Thumbnail maker
|
|
|
|
|
I am looking for Flat CDateTimePicker class to use with Visual c++ 6.0 .
|
|
|
|
|
|
This class is not for VIsual c++ 6.0 It's for Visual c++ .NET.(FlatDateTimePicker.cs)
I am looking for Visual c++ 6.0 (.cpp and .h files)
I learn my self
-- modified at 3:28 Saturday 15th April, 2006
|
|
|
|