Windows 7 - aygshell.h

Asked By QuantumUniverses on 04-Feb-10 08:57 AM
When I compile my projects with my SDK (Windows CE 6 based) this error
occurs:

[...] \Microsoft Visual Studio 8\VC\ce\atlmfc\include\afxce.h(41) : fatal
error C1083: Cannot open include file: 'aygshell.h': No such file or
directory

How can I solve it?

Massimo




Rik Attrill replied to QuantumUniverses on 04-Feb-10 11:03 AM
Hi Massimo,

You (or whoever produced your SDK) need to have included the "AYGShell
API Set" component in their OS configuration (SYSGEN_AYGSHELL) before
building the SDK.

best regards,
Rik A
AndrewScholan[MCTS] replied to QuantumUniverses on 04-Feb-10 11:03 AM
You can do one of two things:

1. Include AYGSHELL in your catalog items in Platformbuilder, but this
will push you up from "Core" license to "C6G" or "Pro" depending on
your type of device.

or...

2. You can create some dummy header files that fool MFC into thinking
that AYGSHELL is included in the platform (AYGSHELL is not actually
needed for most of MFC, but it still pulls in the headers). I have in
the past used the following as a dummy aygshell.h:

//Dummy header file needed to correctly build MFC applications without
AYGShell
//included in the OS Design. This include file is pulled in by
afxce.h, even
//when the SDK does not include the AYGShell component.


//These definitions are needed for function prototypes in afxstat_.h
typedef struct tagSHMENUBARINFO
{
DWORD cbSize;               // IN  - Indicates which members of
struct are valid
HWND hwndParent;            // IN
DWORD dwFlags;              // IN  - Some features we want
UINT nToolBarId;            // IN  - Which toolbar are we using
HINSTANCE hInstRes;         // IN  - Instance that owns the
resources
int nBmpId;
int cBmpImages;             // IN  - Count of bitmap images
HWND hwndMB;                // OUT
COLORREF clrBk;             // IN  - background color of the menu
bar (excluding sip)
} SHMENUBARINFO, *PSHMENUBARINFO;

typedef struct
{
DWORD cbSize;
HWND hwndLastFocus;
UINT fSipUp :1;
UINT fSipOnDeactivation :1;
UINT fActive :1;
UINT fReserved :29;
} SHACTIVATEINFO, *PSHACTIVATEINFO;

typedef struct tagSHINITDLGINFO
{
DWORD dwMask;
HWND  hDlg;
DWORD dwFlags;
} SHINITDLGINFO, *PSHINITDLGINFO;

typedef struct tagSHRGI {
DWORD cbSize;
HWND hwndClient;
POINT ptDown;
DWORD dwFlags;
} SHRGINFO, *PSHRGINFO;


Regards,
Andrew.
Ulrich Eckhardt replied to AndrewScholan[MCTS] on 05-Feb-10 03:45 AM
Why not simply include aygshell.h in the SDK without actually using the
AYGSHELL component? Shouldn't that work, too?

Uli

--
Sator Laser GmbH
Gesch??ftsf??hrer: Thorsten F??cking, Amtsgericht Hamburg HR B62 932
AndrewScholan[MCTS] replied to Ulrich Eckhardt on 05-Feb-10 05:10 AM
The real aygshell.h pulls in a number of other header files that you
also do not have... you can do it but I found the dummy one a better
option. I am not sure what the licensing restrictions are like if you
include microsoft headers that the SDK does not roll in???
Ulrich Eckhardt replied to AndrewScholan[MCTS] on 05-Feb-10 05:22 AM
[...]

Good points, will keep those in mind.

Uli

--
Sator Laser GmbH
Gesch??ftsf??hrer: Thorsten F??cking, Amtsgericht Hamburg HR B62 932