#include "RtsAPI.h" #include "Rts.h" #include #include #include #include "../../vs_haskell_ui/resource.h" static HsInt32 __stdcall eval_setProperty0(StgStablePtr the_stableptr, HsPtr a1, HsWord32 a2, HsInt32 a3, VARIANT v) { Capability *cap; HaskellObj ret; HsInt32 cret; cap = rts_lock(); cap=rts_evalIO(cap,rts_apply(cap,(HaskellObj)runIO_closure,rts_apply(cap,rts_apply(cap,rts_apply(cap,rts_apply(cap,(StgClosure*)deRefStablePtr(the_stableptr),rts_mkPtr(cap,a1)),rts_mkWord32(cap,a2)),rts_mkInt32(cap,a3)),rts_mkPtr(cap,(HsPtr) &v))) ,&ret); rts_checkSchedStatus("VsProjectProxy_dd3B",cap); cret=rts_getInt32(ret); rts_unlock(cap); return cret; } void *export_setProperty0(StgStablePtr hptr) { return createAdjustor(0, hptr, eval_setProperty0, "i"); } static GUID GUID_VsUIHierarchyWindowCmds = {0x60481700, 0x078b, 0x11d1, {0xaa, 0xf8, 0x00, 0xa0, 0xc9, 0x05, 0x5a, 0x90}}; static GUID CMDSETID_StandardCommandSet97 = {0x5efc7975, 0x14bc, 0x11cf, {0x9b, 0x2b, 0x00, 0xaa, 0x00, 0x57, 0x38, 0x19}}; static GUID CMDSETID_StandardCommandSet2K = {0x1496A755, 0x94DE, 0x11D0, {0x8C, 0x3F, 0x00, 0xC0, 0x4F, 0xC2, 0xAA, 0xE2}}; static HsInt32 __stdcall eval_queryStatusCommand(StgStablePtr the_stableptr, IUnknown *this, DWORD itemid, GUID *pguidCmdGroup, ULONG cCmds, OLECMD *prgCmds, OLECMDTEXT *pCmdText) { if (cCmds != 1) return OLECMDERR_E_NOTSUPPORTED; if ((IsEqualGUID(&GUID_VsUIHierarchyWindowCmds, pguidCmdGroup) && (prgCmds->cmdID == 1 || prgCmds->cmdID == 2 || prgCmds->cmdID == 3)) || (IsEqualGUID(&CMDSETID_StandardCommandSet97, pguidCmdGroup) && (prgCmds->cmdID == 220 || prgCmds->cmdID == 244 || prgCmds->cmdID == 245 || prgCmds->cmdID == 261)) || (IsEqualGUID(&CMDSETID_StandardCommandSet2K, pguidCmdGroup) && (prgCmds->cmdID == 600 || prgCmds->cmdID == 1109 || prgCmds->cmdID == 1110 || prgCmds->cmdID == 1113))) { Capability *cap; HaskellObj ret; HsInt32 cret; cap = rts_lock(); cap=rts_evalIO(cap,rts_apply(cap,(HaskellObj)runIO_closure,rts_apply(cap,rts_apply(cap,rts_apply(cap,rts_apply(cap,rts_apply(cap,rts_apply(cap,(StgClosure*)deRefStablePtr(the_stableptr),rts_mkPtr(cap,this)),rts_mkWord32(cap,itemid)),rts_mkPtr(cap,pguidCmdGroup)),rts_mkWord32(cap,cCmds)),rts_mkPtr(cap,prgCmds)),rts_mkPtr(cap,pCmdText))) ,&ret); rts_checkSchedStatus("eval_queryStatusCommand",cap); cret=rts_getInt32(ret); rts_unlock(cap); return cret; } //OutputDebugString("eval_queryStatusCommand"); //prgCmds[0].cmdf = OLECMDF_SUPPORTED | OLECMDF_ENABLED; return OLECMDERR_E_NOTSUPPORTED; } void *export_queryStatusCommand(StgStablePtr hptr) { return createAdjustor(0, hptr, eval_queryStatusCommand, "i"); } static HsInt32 __stdcall eval_queryStatus(StgStablePtr the_stableptr, IUnknown *this, GUID *pguidCmdGroup, ULONG cCmds, OLECMD *prgCmds, OLECMDTEXT *pCmdText) { if (cCmds != 1) return OLECMDERR_E_NOTSUPPORTED; if ((IsEqualGUID(&GUID_VsUIHierarchyWindowCmds, pguidCmdGroup) && (prgCmds->cmdID == 1 || prgCmds->cmdID == 2 || prgCmds->cmdID == 3)) || (IsEqualGUID(&CMDSETID_StandardCommandSet97, pguidCmdGroup) && (prgCmds->cmdID == 220 || prgCmds->cmdID == 244 || prgCmds->cmdID == 245 || prgCmds->cmdID == 261)) || (IsEqualGUID(&CMDSETID_StandardCommandSet2K, pguidCmdGroup) && (prgCmds->cmdID == 600 || prgCmds->cmdID == 1109 || prgCmds->cmdID == 1110 || prgCmds->cmdID == 1113))) { Capability *cap; HaskellObj ret; HsInt32 cret; cap = rts_lock(); cap=rts_evalIO(cap,rts_apply(cap,(HaskellObj)runIO_closure,rts_apply(cap,rts_apply(cap,rts_apply(cap,rts_apply(cap,rts_apply(cap,(StgClosure*)deRefStablePtr(the_stableptr),rts_mkPtr(cap,this)),rts_mkPtr(cap,pguidCmdGroup)),rts_mkWord32(cap,cCmds)),rts_mkPtr(cap,prgCmds)),rts_mkPtr(cap,pCmdText))) ,&ret); rts_checkSchedStatus("eval_queryStatus",cap); cret=rts_getInt32(ret); rts_unlock(cap); return cret; } //prgCmds[0].cmdf = OLECMDF_SUPPORTED | OLECMDF_ENABLED; //OutputDebugString("eval_queryStatus"); return OLECMDERR_E_NOTSUPPORTED; } void *export_queryStatus(StgStablePtr hptr) { return createAdjustor(0, hptr, eval_queryStatus, "i"); }