typedef struct _SHITEMID {
  USHORT cb;
  BYTE   abID[1];
} SHITEMID;


/* MANUAL TYPEDEF see: https://msdn.microsoft.com/en-us/library/windows/desktop/bb773321(v=vs.85).aspx*/

typedef struct _ITEMIDLIST {
  SHITEMID mkid;
} ITEMIDLIST, *PCIDLIST_ABSOLUTE, *PIDLIST_ABSOLUTE;


typedef enum ACTIVATEOPTIONS
{
    AO_NONE	= 0,
    AO_DESIGNMODE	= 0x1,
    AO_NOERRORUI	= 0x2,
    AO_NOSPLASHSCREEN	= 0x4,
    AO_PRELAUNCH	= 0x2000000
} 	ACTIVATEOPTIONS;


typedef /* [v1_enum] */
enum PACKAGE_EXECUTION_STATE
{
    PES_UNKNOWN	= 0,
    PES_RUNNING	= 1,
    PES_SUSPENDING	= 2,
    PES_SUSPENDED	= 3,
    PES_TERMINATED	= 4
} 	PACKAGE_EXECUTION_STATE;

typedef struct _SHFILEOPSTRUCTA {
  HWND         hwnd;
  UINT         wFunc;
  PCSTR      pFrom;
  PCSTR      pTo;
  FILEOP_FLAGS fFlags;
  BOOL         fAnyOperationsAborted;
  LPVOID       hNameMappings;
  PCSTR        lpszProgressTitle;
} SHFILEOPSTRUCTA, *LPSHFILEOPSTRUCTA;