#if !defined(WPSPTRS) && !defined(WPSREFS)
   #define WPSPTRS
#endif

#ifndef WPShadow_Source
#define WPShadow_Source

#include <wpabs.hh>
#pragma off(dts_class);
#pragma on(somobject_assignment_operators);
#pragma on(somobject_constructors);
#pragma on(somobject_destructor);
#pragma off(case_insensitive_class_names);

#pragma on(som_bindings);
class WPShadow : public WPAbstract {

     #pragma SOMMap (WPShadow, "WPShadow", "M_WPShadow")

     #pragma SOMClassVersion (WPShadow, 1, 2)

     #pragma SOMCallstyle (WPShadow, oidl)

     #pragma off(som_bindings);
     #pragma pop(som_bindings);
  public :

#pragma off(use_override_signature)
     virtual WPObject* wpQueryShadowedObject(BOOL fLock);
     virtual BOOL wpSetShadowTitle(PSZ pszNewTitle);
     virtual PSZ wpQueryTitle();
     virtual BOOL wpSetup(PSZ pszSetupString);
     virtual BOOL wpSaveState();
     virtual BOOL wpRestoreState(ULONG ulReserved);
     virtual ULONG wpQueryStyle();
     virtual void wpInitData();
     virtual void wpUnInitData();
     virtual BOOL wpSetTitle(PSZ pszNewTitle);
     virtual ULONG wpFilterPopupMenu(ULONG ulFlags, HWND hwndCnr,
                                     BOOL fMultiSelect);
     virtual BOOL wpModifyPopupMenu(HWND hwndMenu, HWND hwndCnr,
                                    ULONG iPosition);
     virtual BOOL wpMenuItemSelected(HWND hwndFrame, ULONG ulMenuId);
     virtual HWND wpViewObject(HWND hwndCnr, ULONG ulView, ULONG param);
     virtual BOOL wpMenuItemHelpSelected(ULONG MenuId);
#if defined(WPSREFS)
     virtual WPObject* wpCreateFromTemplate(WPFolder& folder,
#else
     virtual WPObject* wpCreateFromTemplate(WPFolder* folder,
#endif
                                            BOOL fLock);
     virtual HWND wpOpen(HWND hwndCnr, ULONG ulView, ULONG param);
     virtual BOOL wpInsertPopupMenuItems(HWND hwndMenu, ULONG iPosition,
                                         HMODULE hmod, ULONG MenuID,
                                         ULONG SubMenuID);
#if defined(WPSREFS)
     virtual WPObject* wpCreateShadowObject(WPFolder& Folder,
#else
     virtual WPObject* wpCreateShadowObject(WPFolder* Folder,
#endif
                                            BOOL fLock);
     virtual MRESULT wpDragOver(HWND hwndCnr, PDRAGINFO pdrgInfo);
     virtual MRESULT wpDrop(HWND hwndCnr, PDRAGINFO pdrgInfo,
                            PDRAGITEM pdrgItem);
     virtual BOOL wpQueryDefaultHelp(PULONG pHelpPanelId, PSZ HelpLibrary);
     virtual ULONG wpConfirmDelete(ULONG fConfirmations);
#if defined(WPSREFS)
     virtual ULONG wpConfirmObjectTitle(WPFolder& Folder, WPObject*& ppDuplicate,
#else
     virtual ULONG wpConfirmObjectTitle(WPFolder* Folder, WPObject** ppDuplicate,
#endif
                                        PSZ pszTitle, ULONG cbTitle,
                                        ULONG menuID);
     virtual BOOL wpPrintObject(PPRINTDEST pPrintDest, ULONG ulReserved);
     virtual BOOL wpFormatDragItem(PDRAGITEM pdrgItem);
#if defined(WPSREFS)
     virtual MRESULT wpDraggedOverObject(WPObject& DraggedOverObject);
#else
     virtual MRESULT wpDraggedOverObject(WPObject* DraggedOverObject);
#endif
#if defined(WPSREFS)
     virtual BOOL wpDroppedOnObject(WPObject& DroppedOnObject);
#else
     virtual BOOL wpDroppedOnObject(WPObject* DroppedOnObject);
#endif
     virtual ULONG wpQueryNameClashOptions(ULONG menuID);
#pragma pop(use_override_signature)

     #pragma SOMReleaseOrder ( \
                              *, \
                              *, \
                              wpSetShadowTitle, \
                              wpQueryShadowedObject)
};
#pragma pop(som_bindings);

#pragma pop(dts_class);
#pragma pop(somobject_assignment_operators);
#pragma pop(somobject_constructors);
#pragma pop(somobject_destructor);
#pragma pop(case_insensitive_class_names);
#endif /* WPShadow_Source */

#ifndef M_WPShadow_Source
#define M_WPShadow_Source

#include <wpabs.hh>
#include <somcls.hh>
#pragma off(dts_class);
#pragma on(somobject_assignment_operators);
#pragma on(somobject_constructors);
#pragma on(somobject_destructor);
#pragma off(case_insensitive_class_names);

#pragma on(som_bindings);
class M_WPShadow : public M_WPAbstract {

     #pragma SOMClassVersion (M_WPShadow, 1, 2)

     #pragma SOMCallstyle (M_WPShadow, oidl)

     #pragma off(som_bindings);
     #pragma pop(som_bindings);
  public :

#pragma off(use_override_signature)
     virtual PSZ wpclsQueryTitle();
     virtual ULONG wpclsQueryStyle();
     virtual ULONG wpclsQueryIconData(PICONINFO pIconInfo);
#pragma pop(use_override_signature)

     #pragma SOMReleaseOrder ()

};
#pragma pop(som_bindings);

#pragma pop(dts_class);
#pragma pop(somobject_assignment_operators);
#pragma pop(somobject_constructors);
#pragma pop(somobject_destructor);
#pragma pop(case_insensitive_class_names);
#endif /* M_WPShadow_Source */

