WM_CONTEXTMENU and wince/pocketpc

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

WM_CONTEXTMENU and wince/pocketpc

Paul Sokolovsky
Hello,

Here's one typical pearl from Microsoft.

2 pages describing SHRecognizeGesture():

http://msdn.microsoft.com/en-us/library/aa925176.aspx
"If a context menu gesture was recognized, a WM_CONTEXTMENU message will
be sent to shrg->hwndClient and propagated up the parent chain if not
handled."

http://msdn.microsoft.com/en-us/library/aa458077.aspx
No mentioning of WM_CONTEXTMENU

The first page is marked as Windows Mobile 6.5.

So, how to understand that? Have they been providing incompatible
behavior for WinCE (GN_CONTEXTMENU notification instead of
WM_CONTEXTMENU) and several years later learned what is interface
contract and that it's bad to break it, and added sending
WM_CONTEXTMENU, or did they just have been forgetting "to state the
obvious" (typical blog headline of one of Microsoft guys -
http://blogs.msdn.com/b/oldnewthing/archive/2006/03/02/542115.aspx)
for years?

Looking at the real code:

iDialer - explicitly calls SHRecognizeGesture(), handles WM_CONTEXTMENU
GSPlayer - doesn't call SHRecognizeGesture() (apparently relies on
by-default tap-and-hold support in common controls), handles
GN_CONTEXTMENU.
tManCfg - doesn't call SHRecognizeGesture() (but it's MFC app, MFC
should call that), handles GN_CONTEXTMENU.

So, it's not my confusion, people for years used on WinCE something
different than on Win32. Google gives scarce results. Some people
reported WM_CONTEXTMENU not being available on eVC3, etc., but that
might be user error.


Does anyone have an idea about this stuff?

--
Best regards,
 Paul                          mailto:[hidden email]

------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and,
should the need arise, upgrade to a full multi-node Oracle RAC database
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
Cegcc-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/cegcc-devel
Reply | Threaded
Open this post in threaded view
|

Re: WM_CONTEXTMENU and wince/pocketpc

Vincent Torri


On Wed, 5 Jan 2011, Paul Sokolovsky wrote:

> Hello,
>
> Here's one typical pearl from Microsoft.
>
> 2 pages describing SHRecognizeGesture():
>
> http://msdn.microsoft.com/en-us/library/aa925176.aspx
> "If a context menu gesture was recognized, a WM_CONTEXTMENU message will
> be sent to shrg->hwndClient and propagated up the parent chain if not
> handled."
>
> http://msdn.microsoft.com/en-us/library/aa458077.aspx
> No mentioning of WM_CONTEXTMENU
>
> The first page is marked as Windows Mobile 6.5.
>
> So, how to understand that? Have they been providing incompatible
> behavior for WinCE (GN_CONTEXTMENU notification instead of
> WM_CONTEXTMENU) and several years later learned what is interface
> contract and that it's bad to break it, and added sending
> WM_CONTEXTMENU, or did they just have been forgetting "to state the
> obvious" (typical blog headline of one of Microsoft guys -
> http://blogs.msdn.com/b/oldnewthing/archive/2006/03/02/542115.aspx)
> for years?
>
> Looking at the real code:
>
> iDialer - explicitly calls SHRecognizeGesture(), handles WM_CONTEXTMENU
> GSPlayer - doesn't call SHRecognizeGesture() (apparently relies on
> by-default tap-and-hold support in common controls), handles
> GN_CONTEXTMENU.
> tManCfg - doesn't call SHRecognizeGesture() (but it's MFC app, MFC
> should call that), handles GN_CONTEXTMENU.
>
> So, it's not my confusion, people for years used on WinCE something
> different than on Win32. Google gives scarce results. Some people
> reported WM_CONTEXTMENU not being available on eVC3, etc., but that
> might be user error.
>
>
> Does anyone have an idea about this stuff?

Iirc, aygshell is hardware dependant (a friend told me that and he also
gave me the advice to never use aygshell functions). So you can have
different implementations of the dll with different phones

Vincent Torri

------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and,
should the need arise, upgrade to a full multi-node Oracle RAC database
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
Cegcc-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/cegcc-devel