|
Hi everybody,
I am writing a dialog-based CMS in which I want the user to be able to edit part of the HTML pages with a WYSIWYG editor. I do so using CHtmlEditCtrl. It works, meaning that I can show the edit control, I can load HTML content into it and I can send commands to it (using stuff like m_ctrlHtml->ExecHelperNN(IDM_BOLD) However, I would also very much like the buttons in my toolbar to respond when the user changes the cursor location, (like the bold button getting the pressed state when appropriate, showing the correct font etc) rather then just being able to send commands from these buttons. However, I cannot seem to find the notification messages sent by CHtmlEditCtrl. Does anyone know how to find these??
Thanks in advance
William
|
|
|
|
|
Hi All,
We have one dll which can be used in many Exes and different Operating systems.
At present i am having one requirement to support to get the LocalLow path in vista.
So I have implemented separate function for it.
I have used SHGetKnownFolderPath funciton to get the LocalLow path.
To compile the workspace , I have to use WINVER value as 0x0600.
IF we defined the WinVersion as 6 , DLL is not running in XP.
Developement Environment :VS 2005 & Vista Business.
//In Vista Expected output : C:\Users\bob\AppData\LocalLow\eGrabber\
//In XP Expceted output: C:\Documents and Settings\Smith\Application Data\eGrabber\
<br />
int GetCurrentUserLocalLowAppPath(LPTSTR szProfileDir,int dirlen )<br />
{<br />
<br />
memset(szProfileDir,0,dirlen);<br />
<br />
if(IsWinXP() == TRUE)<br />
{ <br />
GetCurrentUserAppPath( szProfileDir, dirlen );<br />
}<br />
else if(IsVista() == TRUE)<br />
{<br />
PWSTR pszPath[1];<br />
SHGetKnownFolderPath(NULL,FOLDERID_LocalAppDataLow,0,NULL,pszPath); <br />
}<br />
return 1;<br />
<br />
}
Any idea how to achieve this.
Your suggestion welcomed ...
Thanks.
|
|
|
|
|
The only problem for not working the dll in windows XP is that, it is using a function(SHGetKnownFolderPath ), that is not available in windows XP.
To solve this problem, instead of statically linking to the SHGetKnownFolderPath() function, dynamically call it. That is, using the LoadLibrary() and GetProcAddress() functions.
|
|
|
|
|
Thanks Naveen.
Here is the code for it.
typedef HRESULT (WINAPI * SHGetKnownFolderPathFn)(REFKNOWNFOLDERID rfid, DWORD dwFlags, HANDLE hToken,PWSTR *ppszPath);
PWSTR pszPath[1];
SHGetKnownFolderPathFn shGetKnownFolrPth = NULL ;
HINSTANCE hins = LoadLibrary("Shell32.dll");
if(hins != NULL)
{
shGetKnownFolrPth = (SHGetKnownFolderPathFn)::GetProcAddress(hins,"SHGetKnownFolderPath");
if( shGetKnownFolrPth != NULL)
{
shGetKnownFolrPth(FOLDERID_LocalAppDataLow,0,NULL,pszPath);
CString csData=pszPath[0];
}
}
|
|
|
|
|
Hi,
I was wondering if it is possible to set an struct parameter to NULL.
Something like this:
typedef struct _myStruct
{
int a;
}myStruct;
...
void func(myStruct *ms=NULL);
...
main()
{
myStruct mS;
...
func();
...
func(&mS);
...
}
Is something like this possible...
Thanks in advance...
|
|
|
|
|
default parameter?? search for "default parameter"
|
|
|
|
|
You are right, but i did it before posting the message. I knew it sounds like a common question, but i did not found any good solutions for my question.
I found an article which uses contructors for struct, i want to avoid this solution, i just need to get this parameter NULL....
I know also that how to get default parameters if i use something like int, float... but i need this for structs which seems to have an other behaviour.
:-/
|
|
|
|
|
i used a pointer to class as default parameter in c++. i dont know about c
|
|
|
|
|
You are right, classes would work, but it is not an option for me
Anyway, thank you
|
|
|
|
|
yes, that's called "default arguments"
This signature was proudly tested on animals.
|
|
|
|
|
okay, i did not knew that they were called default arguments.
(I thought default parameter was correct...)
But how can i handle structs???
I want to set an struct argument to NULL by default...
Hm...
|
|
|
|
|
C++ allows default arguments, see, for instance, [^].
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.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Oh ha,...sry
Maybe my question was not clearly.
I know how to handle default arguments(int,bool,float,double...)...but i dont know how to handle it for Structs!
|
|
|
|
|
It makes difference?
For instance:
void foo(MyStruct mystruct=MyStruct());
doesn't fit your needs?
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.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Very good point...
but,
i use structs which also contains structs and many other items, so it would look like this:
void func(
MyStruct mystruct=MyStruct(MyStruct2(),MyStruct3(),2,3,4,"anystring" )
);
Am i right?? I think so.
AND another problem is, that if i want to check it in the function, if it is a default, so i have to provide an additional variable:
void func(
MyStruct mystruct=MyStruct(MyStruct2(),MyStruct3(),2,3,4,"anystring",1 )
);
...
void func(
MyStruct mystruct=MyStruct(MyStruct2(),MyStruct3(),2,3,4,"anystring",1 )
)
{
if(mystruct.isDefault==1)
{...}
else
{...}
}
I hoped(and still hoping) there is an easier solution, but you are right, this would work.
|
|
|
|
|
Wischkony wrote: use structs which also contains structs and many other items, so it would look like this:
void func( MyStruct mystruct=MyStruct(MyStruct2(),MyStruct3(),2,3,4,"anystring" ) );
Am i right?? I think so.
Yes, you may also override the MyStruct's default constructor to take care about.
Wischkony wrote: AND another problem is, that if i want to check it in the function, if it is a default, so i have to provide an additional variable:
void func( MyStruct mystruct=MyStruct(MyStruct2(),MyStruct3(),2,3,4,"anystring",1 ) );...void func(MyStruct mystruct=MyStruct(MyStruct2(),MyStruct3(),2,3,4,"anystring",1 ) ){if(mystruct.isDefault==1)//isDefault->last parameter {...}else {...}}
Provided you've overridden the default MyStruct's constructor the way I told, you may also use the following test (you've also to override the == operator, of course):
if ( mistruct == MyStruct() )
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.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
->Yes, you may also override the MyStruct's default constructor to take care about.
Yes, i know
By reading and writing answers, i am thinking more and more that this is a good solution and not a bad solution.
I was dreaming of an easy way like this:
void func(mystruct *ms=NULL);
But maybe this will stay a dream
Thanks a lot for your time.
|
|
|
|
|
Wischkony wrote: void func(mystruct *ms=NULL);
Well, you have also that option.
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.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
modified on Monday, December 15, 2008 11:53 AM
|
|
|
|
|
It should work the same way. What error are you getting that it doesn't?
|
|
|
|
|
Oh, okay,...
void func(myStruct *ms);
works fine.
But with:
void func(myStruct *ms=NULL);
i got the error C2143: Syntax error: missing ')' before '='
Maybe i am totaly wrong, but i think, i got the error because setting a default value for a struct can not be done so easy.
|
|
|
|
|
Wischkony wrote: Maybe i am totaly wrong, but i think, i got the error because setting a default value for a struct can not be done so easy.
It has nothing to do with it being a struct . It has to do with the file having a .c extension.
"Love people and use things, not love things and use people." - Unknown
"The brick walls are there for a reason...to stop the people who don't want it badly enough." - Randy Pausch
|
|
|
|
|
i have to apologize to all here trying help me.
I was running for hours against a wall.
i tried the following:
void func(mystruct *ms=NULL);
and got an error, so thought this is not possible!!
But it is possible, with:
void func(mystruct *ms);
void func(mystruct *ms=NULL)
{
...
}
I am sry,...aeh this is embarrasing...
|
|
|
|
|
Wischkony wrote: I am sry,...aeh this is embarrasing...
Heh. No problem.
No better way to find silly mistakes and easy solutions than putting it out there for
the world to see
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Hi,
How can I used DeviceIoControl with FSCTL_GET_VOLUME_BITMAP to get list of free cluster of file system.
Please give any link related to this.
|
|
|
|
|
|