|
I think ftp would be the easiest way.
If you must have an http, then you'll need to get a directory listing from the server somehow (for instance allow directory listing, or write your own asp, jsp or cgi to make it in the format that you want, that's probably better, you could filter files out based on the modification date ) and then parse it manually.
Upload via http can be done using "PUT" method (if server supports it) or using "POST", again server should be able to handle it, but there must be plenty plugin (IIS has one for sure) that can handle "multipart/form-data" posts.
Edward
|
|
|
|
|
This is sort of related to a question I had before. I'm writing a program that needs to have an edit control with a very specific format. It needs to have a format of L#LLLL#########LLLL### (where L is any letter A-Z and # is any number 0-9). I'd like to write this control from scratch since this is a type of learing lesson for me. I'm wondering if the best way to go about this is subclassing the CEdit control. If not some ideas on the best way to go about this would be much appreciated. Thanks.
- monrobot13
|
|
|
|
|
Take a look at these[^] before you write code...
John
|
|
|
|
|
monrobot13 wrote:
I'm wondering if the best way to go about this is subclassing the CEdit control.
Yes.
John
|
|
|
|
|
Thanks for the replies John, information is much appreciated.
- monrobot13
|
|
|
|
|
I've got an app that has several static libraries. In the main App I've defined several dialog resources that I want to implement classes for in my static libraries. When I create the classes and put them in my static library I can no longer associate members or message habdlers with the class and the Dialog Resources using the wizards and such in VS. Is there something that I can do to get this working?
I'm using VS.NET 2003, coding in C++.
|
|
|
|
|
Hi everyone!
I have a CString variable and it must be passed in a function as TCHAR. I don't know how could I convert it. Does anybody knows?
Thank you in advance!
|
|
|
|
|
SomeFunction( TCHAR ch )
{
...
}
CString str;
SomeFunction(str[0]);
will work.
A rich person is not the one who has the most, but the one that needs the least.
|
|
|
|
|
TCHAR is simple "char" type. If you want to pass CString data into a function, you should use "TCHAR*" instead of "TCHAR". Example as below.
void f(TCHAR* prm)<br />
{<br />
do something<br />
}<br />
<br />
void main(void)<br />
{<br />
CString szPrm;<br />
f(szPrm.GetBuffer(szPrm.GetLength()));<br />
return(0);<br />
}
Otherwise, you can pass only one character into function.
Ahmet Orkun GEDiK
System & Software Support Specialist (SAP R/3)
ASTRON
|
|
|
|
|
Now it works perfectly, thank you
|
|
|
|
|
If you do this you should also call szPrm.ReleaseBuffer(). The MSDN doc says the following:
If you use the pointer returned by GetBuffer to change the string contents, you must call ReleaseBuffer before using any other CString member functions.
If you are not going to change the string the following should work (LPTSTR)(LPCTSTR)szPrm
John
|
|
|
|
|
Hello.
I would to know how efficient is an assorted CListCtrl's search feature. In other words, is CListCtrl's find feature efficient when finding random item in a list that is assort? Is it faster than O(n)?
Thanks,
Kuphryn
|
|
|
|
|
Hey everyone,
I am currently working with some windows styles i.e. WS_SIZEBOX, WS_OVERLAPPEDWINDOW, WS_MAXIMIZEBOX, WS_MINIMIZEBOX, WS_SIZEBOX, etc. Is there a way to create my own windows styles? I am assuming you can do it with enum? but not really sure.
Thanks everyone
|
|
|
|
|
Mm..
No, I don't think that you can override the default type flags. Basically, the window style flags determine both how the window is painted and how it behaves. This having said, you can override the WM_PAINT function in order to paint your window in any way you can imagine.
Providing different functionality of the window is all about writing custom handlers for different messages the window receives. For example, the sizing box is drawn around the window, it's client area is reduced, and then a hit test is made if the cursor is over the sizing area. The window flags enable you to gain some basic functionality provided by Windows, but again, I don't think you can create your own flags.
This is because if you created new flags, you'd need to hack the Win32 API to determine what these style flags mean. Of course, if you derived an MFC CWnd, you could create custom window flags for your own windows that determine certain painting and/or behaviour styles. But this is not about creating new styles, more like extending the already available ones.
It's difficult to answer your question, but perhaps my ramblings shed some light on the issue
-Antti Keskinen
----------------------------------------------
The definition of impossible is strictly dependant
on what we think is possible.
|
|
|
|
|
That sounds good. Sounds like what I'm looking for. Thank you!
|
|
|
|
|
hi,
i have modified the code of brochure machine which is available in the MSDN for my requirement.
what the earlier Code does??
----------------------------
It gets the handle of current IE instance get the handle of the document and invokes print command on the OLECOMMAND TARGET
Earlier Code snippet(Microsoft)
----------------------
launcPT()
{
CComPtr<iolecontainer> spContainer;
CComPtr<iserviceprovider> spSP;
CComPtr<iwebbrowser2> spWB;
CComPtr<idispatch> spDisp;
CComPtr<ihtmldocument2> spDoc;
CComPtr<iolecommandtarget> spCT;
CComVariant vPTPath = "res://CramerPrintControl.dll/PT.htm";
m_spClientSite->GetContainer(&spContainer);
spContainer->QueryInterface(IID_IServiceProvider, (void**)&spSP);
spSP->QueryService(SID_SWebBrowserApp, IID_IWebBrowser, (void**)&spWB);
spWB->get_Document(&spDisp);
spDisp->QueryInterface(IID_IHTMLDocument2, (void**)&spDoc);
spDoc->QueryInterface(IID_IOleCommandTarget, (void**)&spCT);
spCT->Exec(&CGID_MSHTML, IDM_PRINTPREVIEW, NULL, &vPTPath, NULL);
return S_OK;
}
----------------------------
I want to print the document which is residing in one of the frames of the document ,so i traverse through the frame collection and get the document in the desired frame and try to print it.when i try to do this,after repetitive invokation,the IE crashes,i dont know the reason may be there is a memory leak in my code or may be i am doing something wrng.i am new to vc++.so please have a glance at my code and point out the problems.
i am really stuck here.
Recent code
----------------------------
launchPTNEW(){
CComPtr<iolecontainer> spContainer;
CComPtr<iserviceprovider> spSP;
CComPtr<iwebbrowser2> spWB;
CComPtr<idispatch> spDisp;
CComPtr<idispatch> spContentFrameDisp;
CComPtr<idispatch> spBodyFrameDisp;
CComPtr<ihtmldocument2> spDoc;
CComPtr<iolecommandtarget> spCT;
//tell the path to pick up the print template
CComVariant vPTPath = "res://CramerPrintControl.dll/PT.htm";
//CComVariant vPTPath = "D:/gvs/freshprinting/newPT.htm";
//CComVariant vPTPath = "D:/gvs/freshprinting/paul.htm";
//please get the contianer of the current browser
m_spClientSite->GetContainer(&spContainer);
spContainer->QueryInterface(IID_IServiceProvider, (void**)&spSP);
//get the browser control
spSP->QueryService(SID_SWebBrowserApp, IID_IWebBrowser, (void**)&spWB);
//get the Idispatch of the document in the main browser
spWB->get_Document(&spDisp);
HRESULT hr;
// Get an IDispatch pointer for the
// IOleCommandTarget interface.
//1. get the dispacther interface from the browser document
//get the document in the browser
spDisp->QueryInterface(IID_IHTMLDocument2, (void**)&spDoc);
//hr=spDoc->QueryInterface(IID_IOleCommandTarget, (void**)&spCT);
//hold the frame name while iterating through the frames
CComBSTR bstrFrameName;
//this is the frame i am interested in
CComBSTR bstrContentName(OLESTR("ContentFrame"));
//this is the frame i want to print
CComBSTR bstrBodyName(OLESTR("body"));
//this is the frame i want to print
CComBSTR bstrResultsName(OLESTR("ResultsFrame"));
//declare the html frames collection
CComPtr<ihtmlframescollection2> framescol;
//IHTMLFramesCollection2* framescol=NULL;
//spDoc->get_frames(&framescol);
//2. get the window containing the document
CComPtr<ihtmlwindow2> pDocumentWin;
//IHTMLWindow2* pDocumentWin;
//get the window the current document resides
hr=spDoc->get_parentWindow(&pDocumentWin);
//pDocumentWin->get_name(&bstrFrameName);
if(SUCCEEDED (hr)) {
//3. get the parent window
CComPtr<ihtmlwindow2> pParentWin;
//IHTMLWindow2* pParentWin;
hr=pDocumentWin->get_parent(&pParentWin);
//gvschnaged
CComPtr<ihtmldocument2> pParentFramedoc;
//IHTMLDocument2* pParentFramedoc;
//4.get the document of the parent window
hr=pParentWin->get_document(&pParentFramedoc);
//5.get all the frames of the parent window
hr=pParentFramedoc->get_frames(&framescol);
LONG len;
//how many number of frames are there in the current document
framescol->get_length(&len);
//loop through and find out the name
int i;
for (i=0;i<len;++i)
{
="" variant="" var1;
="" var1.vt="VT_UINT;
" var1.lval="i;
" var2;
="" var2.vt="VT_DISPATCH;
" get="" each="" frame="" in="" collection
="" hr="framescol-">item(&var1, &var2);
if(hr == S_OK) //ERROR
{
IDispatch* pDisp;
pDisp=var2.pdispVal;
CComPtr<ihtmlwindow2> pFrameWin;
//IHTMLWindow2* pFrameWin;
//get the next window frame
hr=var2.pdispVal->QueryInterface(IID_IHTMLWindow2,(void**)&pFrameWin);
if(SUCCEEDED (hr))
{
//empty it beofre you pass it to avoid memory leak
//if(bstrFrameName )
//{
bstrFrameName.Empty();
//}
//what is the frame name???
hr = pFrameWin->get_name(&bstrFrameName);
//is the frame name mathing with the ContentFrame??
//if (_bstr_t(bstrFrameName, TRUE) == _bstr_t(bstrContentName, TRUE))
if (bstrFrameName== bstrContentName)
{
//release the string resources
::SysFreeString(bstrFrameName);
::SysFreeString(bstrContentName);
//get the body frame with in the content frame
//////////////////////
//gvschanged
CComPtr<ihtmldocument2> pContentFramedoc;
//IHTMLDocument2* pContentFramedoc;
hr=pFrameWin->get_document(&pContentFramedoc);//problem
if(SUCCEEDED (hr))
{
//declare the html frames collection
CComPtr<ihtmlframescollection2> contentFrames;
//IHTMLFramesCollection2* contentFrames=NULL;
//get all the frames in the content frame
pContentFramedoc->get_frames(&contentFrames);
LONG Contentlen;
//how many number of frames are there in the current document
contentFrames->get_length(&Contentlen);
//hold the frame name in the second iteration
CComBSTR bstrContFrameName;
//loop through and find out the name
int j;
for (j=0;j<contentlen;++j)
{
="" variant="" framerequested;
="" frameout;
="" framerequested.vt="VT_UINT;
" framerequested.lval="j;
" ccomptr<ihtmlwindow2=""> pBodyFrameWindow;
//IHTMLWindow2* pBodyFrameWindow;
//get each frame residing in the content frame
hr=contentFrames->item(&frameRequested, &frameOut);
//get the window handle of the frame
hr = frameOut.pdispVal->QueryInterface(IID_IHTMLWindow2, (void**)&pBodyFrameWindow);
if(SUCCEEDED (hr))
{
//empty it beofre you pass it to avoid memory leak
//if(bstrContFrameName)
//{
bstrContFrameName.Empty();
//}
//what is the frame name???
hr = pBodyFrameWindow->get_name(&bstrContFrameName);
//check if this frame is body frame
//if (_bstr_t(bstrContFrameName, TRUE) == _bstr_t(bstrBodyName, TRUE))
if ((bstrContFrameName == bstrBodyName) || (bstrContFrameName == bstrResultsName))
{
//release the string resources
::SysFreeString(bstrContFrameName);
::SysFreeString(bstrBodyName);
::SysFreeString(bstrResultsName);
//gvschanged
CComPtr<ihtmldocument2> pBodyFramedoc;
//IHTMLDocument2* pBodyFramedoc;
//get the document of the body frame
hr=pBodyFrameWindow->get_document(&pBodyFramedoc);
if(hr == S_OK)
{
///
//release the variantts
VariantClear(&var1);
VariantClear(&var2);
VariantClear(&frameOut);
VariantClear(&frameRequested);
///
//spBodyFrameDisp->QueryInterface(IID_IHTMLDocument2, (void**)&pBodyFramedoc);
//get the OLE command target of the document to be printed
hr=pBodyFramedoc->QueryInterface(IID_IOleCommandTarget, (void**)&spCT);
//Go for print previewing the body frame document.
hr=spCT->Exec(&CGID_MSHTML, IDM_PRINTPREVIEW, NULL, &vPTPath, NULL);
//spCT->Release();
return S_OK;
}
}
}
}
}
}
}
}
}
}
return S_OK;
}
-----------------------------
|
|
|
|
|
My COM is rusty -- but do you Release() everything you QueryInterface to get?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
Peter Weyzen<br />
Staff Engineer<br />
<A HREF="http://www.santacruznetworks.com">Santa Cruz Networks</A>
|
|
|
|
|
Hi,
my resource project is in Hebrew but all I see are '????'s. Any hints?
Thanks!
---------------
Tired of Spam? InboxShield for Microsoft® Outlook® and Outlook Express®
http://www.inboxshield.com
|
|
|
|
|
(1) What character set do you display with? UNICODE? MBCS? etc...
(2) What language packs do you have installed on your computer?
(3) What operating system?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
Peter Weyzen<br />
Staff Engineer<br />
<A HREF="http://www.santacruznetworks.com">Santa Cruz Networks</A>
|
|
|
|
|
Peter Weyzen wrote:
(1) What character set do you display with? UNICODE? MBCS? etc...
(2) What language packs do you have installed on your computer?
(3) What operating system?
1) MBCS
2) English. I don't have the multi-language package
3) Win XP
Thanks!
---------------
Tired of Spam? InboxShield for Microsoft® Outlook® and Outlook Express®
http://www.inboxshield.com
|
|
|
|
|
so -- you don't seem to have a Hebrew character set on your computer....
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
Peter Weyzen<br />
Staff Engineer<br />
<A HREF="http://www.santacruznetworks.com">Santa Cruz Networks</A>
|
|
|
|
|
I guess! The problem is that my contact in Israel, whom have the Hebrew package installed, told me that all the strings in my app were ???????. Should have mentionned that earlier
One thing that I should mention is that the string table language's is Hebrew but the dialogs are in english. Perhaps the problem lays there?
---------------
Tired of Spam? InboxShield for Microsoft® Outlook® and Outlook Express®
http://www.inboxshield.com
|
|
|
|
|
Does your friend's default locale is hebrew and what locale do you use in your program, default ?
Note : it seems better to use STL's locale class to set the locale, rather then win api directly, this all locales are set the same, win32 and c runtime.
I would recommend to switch to Unicode, it is so much easier to deal with, especially when you mix two or more langauges, the effort might well worth it. Also, try to install hebrew support on your machine (On my w2k it's in Control Panel\Regional Options\General tab, check hebrew, don't have xp machine nearby, but beleive it's in the same place). And of course the font you using must have hebrew charset.
Edward.
|
|
|
|
|
Here's what I did so far :
in the .rc files :
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_HEB)
LANGUAGE LANG_HEBREW, SUBLANG_DEFAULT
#pragma code_page(1255)
...
...
...
I did change every dialog's language to Arial so it can show Hebrew
FONT 8, "Arial", 400, 0, 0xB1
Heck, the editor won't even open the .rc file anymore because it says it's in Hebrew... so I guess the .rc files are fine!
Every place that I could find English as the language I would set it to Hebrew.
Now, in the Outlook toolbar and in the system menu's, the strings are showing correctly (I have Office 2003 and I added Hebrew) but all my dialogs are showing ?????????. I haven't been able to set Hebrew as a language for Windows XP. I'm using LoadString, is there something particular to do?
It's not showing correctly on my computer but I'll check with my contact in Israel...
---------------
Tired of Spam? InboxShield for Microsoft® Outlook® and Outlook Express®
http://www.inboxshield.com
|
|
|
|
|
I looked at the page you've sent. Does "arial" on your system has hebrew charset ? Since the menus are shown corretcly you can try to change "arial" to "MS Shell Dlg" (it's probably mapped to "Microsoft Sans Serif" whatever it is it has hebrew char). Since the title and labels appear to be RTL I assume you have set code page to hebrew.
LoadString loads the string for your current thread locale (same applies to DialogBox, FindResource etc.), this way you can have resources for multiple languages in your resource file and those functions will try to find the closest match for the current thread's locale.
Edward
|
|
|
|