Initial commit: Complete open-source Decal rebuild
All 5 phases of the open-source Decal rebuild: Phase 1: 14 decompiled .NET projects (Interop.*, Adapter, FileService, DecalUtil) Phase 2: 10 native DLLs rewritten as C# COM servers with matching GUIDs - DecalDat, DHS, SpellFilter, DecalInput, DecalNet, DecalFilters - Decal.Core, DecalControls, DecalRender, D3DService Phase 3: C++ shims for Inject.DLL (D3D9 hooking) and LauncherHook.DLL Phase 4: DenAgent WinForms tray application Phase 5: WiX installer and build script 25 C# projects building with 0 errors. Native C++ projects require VS 2022 + Windows SDK (x86). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
commit
d1442e3747
1382 changed files with 170725 additions and 0 deletions
566
Native/Include/Decal.idl
Normal file
566
Native/Include/Decal.idl
Normal file
|
|
@ -0,0 +1,566 @@
|
|||
// Decal.idl : IDL source for Decal.dll
|
||||
//
|
||||
|
||||
// This file will be processed by the MIDL tool to
|
||||
// produce the type library (Decal.tlb) and marshalling code.
|
||||
|
||||
import "oaidl.idl";
|
||||
import "ocidl.idl";
|
||||
|
||||
interface IPluginSite2;
|
||||
|
||||
[
|
||||
object,
|
||||
uuid(A51CEB03-B59F-4302-B125-A0846EA537DD),
|
||||
helpstring("IPlugin2 Interface - All plugin components are required to implement this interface"),
|
||||
pointer_default(unique)
|
||||
]
|
||||
interface IPlugin2 : IUnknown
|
||||
{
|
||||
[helpstring("Create all objects and views within your plugin. The assigned ID can be used for self termiantion and the plugin site should be stored.")] HRESULT Initialize(IPluginSite2 *Site);
|
||||
[helpstring("Release all your objects including the stored IPluginSite2")] HRESULT Terminate();
|
||||
};
|
||||
|
||||
[
|
||||
object,
|
||||
uuid(256DF70B-0B87-45e4-96EE-043E2254CC95),
|
||||
helpstring("IRenderSink Interface"),
|
||||
pointer_default(unique)
|
||||
]
|
||||
interface IKitchenSink : IUnknown
|
||||
{
|
||||
[helpstring("method AddToQueue")] HRESULT AddToQueue([in]long lObjectID);
|
||||
[helpstring("method ShortcircuitID")] HRESULT ShortcircuitID([in] long lObjectID);
|
||||
};
|
||||
|
||||
[
|
||||
object,
|
||||
uuid(FFA32A7A-EFAF-484A-B358-8802DBBAB0EC),
|
||||
helpstring("IDecalEnum Interface"),
|
||||
pointer_default(unique)
|
||||
]
|
||||
interface IDecalEnum : IUnknown
|
||||
{
|
||||
[propget, helpstring("Human Readable Name")] HRESULT FriendlyName([out, retval] BSTR *pVal);
|
||||
[propget, helpstring("CLSID for the object")] HRESULT ComClass([out, retval] CLSID *pVal);
|
||||
[propget, helpstring("If the object is enabled")] HRESULT Enabled([out, retval] VARIANT_BOOL *pVal);
|
||||
[propput, helpstring("Set the object enabled")] HRESULT Enabled([in] VARIANT_BOOL newVal);
|
||||
[helpstring("Create an instance of this object")] HRESULT CreateInstance(REFIID iid, [out, retval, iid_is(iid)] LPVOID *ppvItf);
|
||||
[helpstring("Move to the next entry, returns S_FALSE when complete")] HRESULT Next();
|
||||
[propget, helpstring("If this object is a surrogate, returns the surrogate CLSID, otherwise GUID_NULL")] HRESULT SurrogateClass([out, retval] CLSID *pVal);
|
||||
[propget, helpstring("Resource path for this object, if not specified the decal resource path")] HRESULT ResourcePath([out, retval] BSTR *pVal);
|
||||
[propget, helpstring("property Property")] HRESULT Property(BSTR Name, [out, retval] VARIANT *pVal);
|
||||
[propget, helpstring("property Group")] HRESULT Group([out, retval] BSTR *pVal);
|
||||
[helpstring("Advance to a specific class")] HRESULT Skip ([in] REFCLSID clsid);
|
||||
[helpstring("method MoveBefore")] HRESULT MoveBefore(REFCLSID clsidBefore);
|
||||
};
|
||||
|
||||
[
|
||||
object,
|
||||
uuid(9337777E-3079-47E3-8B6A-EDCB1ECABC27),
|
||||
helpstring("IACHooks Interface"),
|
||||
dual,
|
||||
pointer_default(unique),
|
||||
oleautomation
|
||||
]
|
||||
interface IACHooks : IDispatch
|
||||
{
|
||||
[id(1), propget, helpstring("property CurrentSelection")] HRESULT CurrentSelection([out, retval] long* pVal);
|
||||
[id(1), propput, helpstring("property CurrentSelection")] HRESULT CurrentSelection([in] long pVal);
|
||||
[id(2), propget, helpstring("property PreviousSelection")] HRESULT PreviousSelection([out, retval] long* pVal);
|
||||
[id(2), propput, helpstring("property PreviousSelection")] HRESULT PreviousSelection([in] long pVal);
|
||||
[id(3), helpstring("method ChatOut")] HRESULT ChatOut([in]BSTR szText, long lColor);
|
||||
[id(4), helpstring("method RawChatOut")] HRESULT RawChatOut([in]BSTR szText, long lColor);
|
||||
[id(5), helpstring("method SetCursorPosition")] HRESULT SetCursorPosition([in] long lX, long lY);
|
||||
[id(6), helpstring("method CastSpell")] HRESULT CastSpell([in]long lSpellID, long lObjectID);
|
||||
[id(7), helpstring("method MoveItem")] HRESULT MoveItem([in] long lObjectID, long lPackID, long lSlot, VARIANT_BOOL bStack);
|
||||
[id(8), helpstring("method SelectItem")] HRESULT SelectItem([in]long lObjectID);
|
||||
[id(9), helpstring("method UseItem")] HRESULT UseItem([in]long lObjectID, long lUseState);
|
||||
[propget, id(10), helpstring("property CombatState")] HRESULT CombatState([out, retval] long *pVal);
|
||||
[propget, id(12), helpstring("property ChatState")] HRESULT ChatState([out, retval] VARIANT_BOOL *pVal);
|
||||
[id(13), helpstring("method UseItemEx")] HRESULT UseItemEx([in] long UseThis, long OnThis);
|
||||
[id(14), helpstring("method GetFellowStats")] HRESULT GetFellowStats([in] long lCharID);
|
||||
[propget, id(15), helpstring("property SelectedStackCount")] HRESULT SelectedStackCount(long lStackCount, [out, retval] long *pVal);
|
||||
[propput, id(15), helpstring("property SelectedStackCount")] HRESULT SelectedStackCount(long lStackCount, [in] long newVal);
|
||||
[propget, id(16), helpstring("property VendorID")] HRESULT VendorID([out, retval] long *pVal);
|
||||
[propget, id(17), helpstring("property BusyState")] HRESULT BusyState([out, retval] long *pVal);
|
||||
[propget, id(18), helpstring("property BusyStateID")] HRESULT BusyStateID([out, retval] long *pVal);
|
||||
[propget, id(19), helpstring("property PointerState")] HRESULT PointerState([out, retval] long *pVal);
|
||||
[id(20), helpstring("method MoveItemEx")] HRESULT MoveItemEx([in]long lObjectID, long lDestinationID);
|
||||
[propget, id(21), helpstring("property Heading")] HRESULT Heading([out, retval] double *pVal);
|
||||
[propget, id(22), helpstring("property Landblock")] HRESULT Landblock([out, retval] long *pVal);
|
||||
[propget, id(23), helpstring("property LocationX")] HRESULT LocationX([out, retval] double *pVal);
|
||||
[propget, id(24), helpstring("property LocationY")] HRESULT LocationY([out, retval] double *pVal);
|
||||
[propget, id(25), helpstring("property LocationZ")] HRESULT LocationZ([out, retval] double *pVal);
|
||||
[propget, id(26), helpstring("property HooksAvailable")] HRESULT HooksAvail([out, retval] long *pVal);
|
||||
[id(27), helpstring("method DropItem")] HRESULT DropItem([in]long lObjectID);
|
||||
[id(28), helpstring("method FaceHeading")] HRESULT FaceHeading([in] float fHeading, [in] VARIANT_BOOL bUnknown, [out,retval] VARIANT_BOOL *pVal);
|
||||
[propget, id(29), helpstring("property Screen3DWidth")] HRESULT Area3DWidth([out, retval] long *pVal);
|
||||
[propget, id(30), helpstring("property Screen3DHeight")] HRESULT Area3DHeight([out, retval] long *pVal);
|
||||
[id(31), helpstring("method ItemIsKnown")] HRESULT ItemIsKnown([in] long lGUID, [out,retval] VARIANT_BOOL *pVal);
|
||||
[id(32), helpstring("method SendTell")] HRESULT SendTell([in]long lPlayerID, BSTR Message);
|
||||
[id(33), helpstring("method SetAutorun")] HRESULT SetAutorun([in] VARIANT_BOOL bOnOff);
|
||||
[id(34), helpstring("method SendTellEx")] HRESULT SendTellEx([in]BSTR Name, BSTR Message);
|
||||
[id(35), helpstring("Gets known MemLocs from the xml.")] HRESULT QueryMemLoc([in] BSTR bstrName, [out, retval] long *pVal);
|
||||
[propget, id(36), helpstring("property Vital")] HRESULT Vital([in] long Vital, [out, retval] long* pVal);
|
||||
[propget, id(37), helpstring("property Attribute")] HRESULT Attribute([in] long Attribute, [out, retval] long* pVal);
|
||||
[propget, id(38), helpstring("property Skill")] HRESULT Skill([in] long Skill, [out, retval] long* pVal);
|
||||
[id(39), helpstring("method LocalChatText")] HRESULT LocalChatText([in] BSTR Text);
|
||||
[id(40), helpstring("method LocalChatEmote")] HRESULT LocalChatEmote([in] BSTR EmoteText);
|
||||
[id(41), helpstring("method SetCombatState")] HRESULT SetCombatState([in] long pVal);
|
||||
[propget, id(42), helpstring("property HooksAvailEx")] HRESULT HooksAvailEx([in] enum eAvailableHooksEx HookID,[out, retval] VARIANT_BOOL *pVal);
|
||||
[id(43), helpstring("method Logout")] HRESULT Logout();
|
||||
[id(44), helpstring("method SetDecal")] HRESULT SetDecal([in] IUnknown *pDecal);
|
||||
[id(45), helpstring("method SecureTrade_Add")] HRESULT SecureTrade_Add([in] long ItemID, [out, retval] VARIANT_BOOL *pVal);
|
||||
|
||||
[propget, id(46), helpstring("property SkillTrainLevel")] HRESULT SkillTrainLevel([in] enum eSkill SkillID, [out, retval] enum eTrainLevel *pVal);
|
||||
[propget, id(47), helpstring("property SkillTotalXP")] HRESULT SkillTotalXP([in] enum eSkill SkillID, [out, retval] int *pVal);
|
||||
[propget, id(48), helpstring("property SkillFreePoints")] HRESULT SkillFreePoints([in] enum eSkill SkillID, [out, retval] int *pVal);
|
||||
[propget, id(49), helpstring("property SkillClicks")] HRESULT SkillClicks([in] enum eSkill SkillID, [out, retval] int *pVal);
|
||||
|
||||
[propget, id(50), helpstring("property AttributeTotalXP")] HRESULT AttributeTotalXP([in] enum eAttribute AttributeID, [out, retval] int *pVal);
|
||||
[propget, id(51), helpstring("property AttributeClicks")] HRESULT AttributeClicks([in] enum eAttribute AttributeID, [out, retval] int *pVal);
|
||||
[propget, id(52), helpstring("property AttributeStart")] HRESULT AttributeStart([in] enum eAttribute AttributeID, [out, retval] int *pVal);
|
||||
|
||||
[propget, id(53), helpstring("property VitalTotalXP")] HRESULT VitalTotalXP([in] enum eVital VitalD, [out, retval] int *pVal);
|
||||
[propget, id(54), helpstring("property VitalClicks")] HRESULT VitalClicks([in] enum eVital VitalID, [out, retval] int *pVal);
|
||||
[id(55), helpstring("method RequestID")] HRESULT RequestID([in] long lObjectID);
|
||||
[id(56), helpstring("method IDQueueAdd")] HRESULT IDQueueAdd([in] long lObjectID);
|
||||
[id(57), helpstring("method SetIDFilter")] HRESULT SetIDFilter([in] IKitchenSink* pIDFilter);
|
||||
[id(58), helpstring("method UstAddItem")] HRESULT UstAddItem([in] long lObjectID);
|
||||
[id(59), helpstring("method SendMessageByMask")] HRESULT SendMessageByMask([in] LONG lMask, [in] BSTR szMessage);
|
||||
[id(60), helpstring("Display a message in the upper left hand corner as either white text or yellow with the busy/error sound.")] HRESULT ToolText([in] BSTR Text, [in] VARIANT_BOOL bError);
|
||||
[id(61), helpstring("Appends text to the message in the upper left hand corner as either white text or yellow with the busy/error sound.")] HRESULT ToolTextAppend([in] BSTR Text, [in] VARIANT_BOOL bError);
|
||||
[id(62), helpstring("Raw Use Item (3rd param)")] HRESULT UseItemRaw([in]long lObjectID, long lUseState, long lUseMethod);
|
||||
[id(63), helpstring("Use the Casting Foci's Spell")] HRESULT UseFociSpell([in]long UseThis, long OnThis);
|
||||
[id(64), helpstring("Set the idle time required to log out")] HRESULT SetIdleTime([in] double dIdleTimeout);
|
||||
[id(65), helpstring("Set /day")] HRESULT SetDay([in] VARIANT_BOOL bDay);
|
||||
[propget, id(66), helpstring("property Misc")] HRESULT Misc([in] long Vital, [out, retval] long* pVal);
|
||||
|
||||
[id(67), helpstring("Give an item")] HRESULT GiveItem([in] long lObject, long lDestination);
|
||||
[id(68), helpstring("Raw MoveItemEx")] HRESULT MoveItemExRaw([in] long lObject, long lDestination, long lMoveFlags);
|
||||
};
|
||||
|
||||
[
|
||||
object,
|
||||
uuid(5C36D41D-1DDD-4315-97CA-75095DDFF8BB),
|
||||
helpstring("IDecal Interface"),
|
||||
pointer_default(unique)
|
||||
]
|
||||
interface IDecal : IUnknown
|
||||
{
|
||||
[helpstring("Initialize the graphics library")] HRESULT InitGraphics( IUnknown *pDirectDraw, IUnknown *pD3DDevice );
|
||||
[propget, helpstring("The DirectDraw object used by AC")] HRESULT DirectDraw(REFIID iid, [iid_is(iid)] void **ppvItf);
|
||||
[propget, helpstring("The Direct3DDevice used by AC")] HRESULT D3DDevice(REFIID iid, [iid_is(iid)] void **ppvItf);
|
||||
[propget, helpstring("The main AC window")] HRESULT HWND([out, retval] long *pVal);
|
||||
[propput, helpstring("The main AC window")] HRESULT HWND(long nVal);
|
||||
[propget, helpstring("If a Decal control current has keyboard focus")] HRESULT Focus([out, retval] VARIANT_BOOL *pVal);
|
||||
[propget, helpstring("Returns the current resolution, in windowed mode it is the client area")] HRESULT ScreenSize([out] long *pWidth, [out] long *pHeight);
|
||||
[helpstring("Converts a tokenized path into a real path")] HRESULT MapPath(BSTR pPath, [out, retval] BSTR *pMapped);
|
||||
[helpstring("Starts all plugins")] HRESULT StartPlugins();
|
||||
[helpstring("Stops all plugins")] HRESULT StopPlugins();
|
||||
[propget, helpstring("Get one fo the singleton objects")] HRESULT Object(BSTR strPath, REFIID iid, [out, retval, iid_is(iid)] LPVOID *pVal);
|
||||
[helpstring("Starts services, should be called once and before starting plugins")] HRESULT StartServices();
|
||||
[propget, helpstring("Returns an enumerator for child objects, the optional GUID advances the iterator to a particular object.")] HRESULT Configuration(BSTR strType, REFCLSID clsidAdvance, [out, retval] IDecalEnum * *pVal);
|
||||
[helpstring("method StopServices")] HRESULT StopServices();
|
||||
[propget, helpstring("property Plugin")] HRESULT Plugin(REFCLSID clsid, REFIID iid, [out, retval, iid_is(iid)] LPVOID *pVal);
|
||||
[propget, helpstring("property Service")] HRESULT Service(REFCLSID clsid, REFIID iid, [out, retval, iid_is(iid)] LPVOID *pVal);
|
||||
[helpstring("method Render2D")] HRESULT Render2D();
|
||||
[helpstring("method Render3D")] HRESULT Render3D();
|
||||
[propget, helpstring("property Hooks")] HRESULT Hooks([out, retval] IACHooks** pVal);
|
||||
};
|
||||
|
||||
[
|
||||
object,
|
||||
uuid(5DBD2180-4B88-440e-9706-E6159A39D014),
|
||||
helpstring("IDecalDirectory Interface"),
|
||||
pointer_default(unique)
|
||||
]
|
||||
interface IDecalDirectory : IUnknown
|
||||
{
|
||||
[helpstring("method Lookup")] HRESULT Lookup(BSTR strName, [out, retval] IUnknown **ppvItf);
|
||||
};
|
||||
|
||||
[
|
||||
object,
|
||||
uuid(0F95468D-5071-4e28-A223-D83FDFED99E2),
|
||||
helpstring("Interface for a decal service object"),
|
||||
pointer_default(unique)
|
||||
]
|
||||
interface IDecalService : IUnknown
|
||||
{
|
||||
[helpstring("Prepare the service")] HRESULT Initialize(IDecal *pDecal);
|
||||
[helpstring("Before plugins are loaded")] HRESULT BeforePlugins();
|
||||
[helpstring("After plugins are terminates")] HRESULT AfterPlugins();
|
||||
[helpstring("method Terminate")] HRESULT Terminate();
|
||||
};
|
||||
|
||||
[
|
||||
object,
|
||||
uuid(B66985FA-8CB0-48e5-A2A9-7B232D609B9C),
|
||||
helpstring("Service interface for services that perform an action each frame"),
|
||||
pointer_default(unique)
|
||||
]
|
||||
interface IDecalRender : IUnknown
|
||||
{
|
||||
[helpstring("method Render2D")] HRESULT Render2D();
|
||||
[helpstring("method Render3D")] HRESULT Render3D();
|
||||
[helpstring("method ChangeHWND")] HRESULT ChangeHWND();
|
||||
[helpstring("method ChangeDirectX")] HRESULT ChangeDirectX();
|
||||
};
|
||||
|
||||
[
|
||||
object,
|
||||
uuid(4FA5D6DF-6169-4F9C-B286-F863D4DA2357),
|
||||
dual,
|
||||
helpstring("IPluginSite2 Interface"),
|
||||
pointer_default(unique)
|
||||
]
|
||||
interface IPluginSite2 : IUnknown
|
||||
{
|
||||
[helpstring("method Unload")] HRESULT Unload();
|
||||
[propget, helpstring("property Object")] HRESULT Object(BSTR Path, [out, retval] LPDISPATCH *pVal);
|
||||
[propget, helpstring("property Decal")] HRESULT Decal([out, retval] IDecal * *pVal);
|
||||
};
|
||||
|
||||
[
|
||||
object,
|
||||
uuid(DA98635C-A312-463b-A746-2CF62AF7413A),
|
||||
helpstring("IDecalSurrogate Interface"),
|
||||
pointer_default(unique)
|
||||
]
|
||||
interface IDecalSurrogate : IUnknown
|
||||
{
|
||||
[helpstring("method CreateInstance")] HRESULT CreateInstance(IDecalEnum *pInitData, REFIID iid, [out, retval, iid_is(iid)] LPVOID *pObject);
|
||||
};
|
||||
|
||||
[
|
||||
object,
|
||||
uuid(E182005F-6A67-48b5-A50F-464340105330),
|
||||
helpstring("IDecalFileSurrogate Interface"),
|
||||
pointer_default(unique)
|
||||
]
|
||||
interface IDecalFileSurrogate : IUnknown
|
||||
{
|
||||
[helpstring("method Register")] HRESULT Register(BSTR Filename);
|
||||
[propget, helpstring("property Extension")] HRESULT Extension([out, retval] BSTR *pVal);
|
||||
[propget, helpstring("property Description")] HRESULT Description([out, retval] BSTR *pVal);
|
||||
};
|
||||
|
||||
[
|
||||
object,
|
||||
uuid(6A188D19-EC3D-409d-8190-7975FEEE2081),
|
||||
helpstring("IDecalUninstall Interface"),
|
||||
pointer_default(unique)
|
||||
]
|
||||
interface IDecalUninstall : IUnknown
|
||||
{
|
||||
[helpstring("This is the uninstallers last chance to see the configuration data. Record everything useful")] HRESULT Prepare(IDecalEnum *pEnum);
|
||||
[helpstring("Perform the remove operation")] HRESULT Uninstall();
|
||||
};
|
||||
|
||||
[
|
||||
object,
|
||||
uuid(A074F83A-32AB-46FC-9E4E-7E9DAFCD5D18),
|
||||
dual,
|
||||
helpstring("IDecalRes Interface"),
|
||||
pointer_default(unique)
|
||||
]
|
||||
interface IDecalRes : IDispatch
|
||||
{
|
||||
};
|
||||
|
||||
[
|
||||
uuid(EB282FE5-7170-4a37-A26E-92AF36385D2C),
|
||||
helpstring("IACHooksEvents Interface")
|
||||
]
|
||||
dispinterface IACHooksEvents
|
||||
{
|
||||
properties:
|
||||
methods:
|
||||
[id(1), helpstring("method ObjectDestroyed")] HRESULT ObjectDestroyed([in] LONG lGuid);
|
||||
[id(2), helpstring("method OnChatBoxMessage")] VARIANT_BOOL OnChatBoxMessage([in] BSTR bstrText, [in] LONG lColor, [in,out] VARIANT_BOOL *bEat );
|
||||
[id(3), helpstring("method OnCommandLineText")] VARIANT_BOOL OnCommandLineText([in] BSTR bstrText, [in,out] VARIANT_BOOL *bEat );
|
||||
[id(4), helpstring("method OnSelectItem")] HRESULT OnSelectItem([in] LONG lGuid);
|
||||
[id(5), helpstring("method OnToolText")] void OnToolText([in] BSTR bstrText, [in] VARIANT_BOOL bError);
|
||||
[id(6), helpstring("method OnToolTextAppend")] void OnToolTextAppend([in] BSTR bstrText, [in] VARIANT_BOOL bError);
|
||||
};
|
||||
|
||||
[
|
||||
uuid(FF7F5F6D-34E0-4B6F-B3BB-8141DE2EF732),
|
||||
version(1.0),
|
||||
helpstring("Decal 1.0 Type Library")
|
||||
]
|
||||
library Decal
|
||||
{
|
||||
// For SendMessageByMask
|
||||
enum eMessageMasks
|
||||
{
|
||||
eFellowship = 0x800,
|
||||
eVassals = 0x1000,
|
||||
ePatron = 0x2000,
|
||||
eMonarch = 0x4000,
|
||||
eCovassals = 0x1000000,
|
||||
eAllegiance = 0x2000000,
|
||||
eMasks_DWORD = 0x7FFFFFFF
|
||||
};
|
||||
|
||||
enum eTrainLevel
|
||||
{
|
||||
eUntrained = 1,
|
||||
eTrained = 2,
|
||||
eSpecialized = 3,
|
||||
eTrainLevel_DWORD = 0x7FFFFFFF
|
||||
};
|
||||
|
||||
enum eVital
|
||||
{
|
||||
eCurrentHealth = 1,
|
||||
eMaximumHealth = 2,
|
||||
eCurrentStamina = 3,
|
||||
eMaximumStamina = 4,
|
||||
eCurrentMana = 5,
|
||||
eMaximumMana = 6,
|
||||
eBaseHealth = 7,
|
||||
eBaseStamina = 8,
|
||||
eBaseMana = 9,
|
||||
eVital_DWORD = 0x7FFFFFFF
|
||||
};
|
||||
|
||||
enum eAttribute
|
||||
{
|
||||
eCurrentStrength = 1,
|
||||
eCurrentEndurance = 2,
|
||||
eCurrentQuickness = 3,
|
||||
eCurrentCoordination = 4,
|
||||
eCurrentFocus = 5,
|
||||
eCurrentSelf = 6,
|
||||
eBaseStrength = 7,
|
||||
eBaseEndurance = 8,
|
||||
eBaseQuickness = 9,
|
||||
eBaseCoordination = 10,
|
||||
eBaseFocus = 11,
|
||||
eBaseSelf = 12,
|
||||
eAttribute_DWORD = 0x7FFFFFFF
|
||||
};
|
||||
|
||||
enum eSkill
|
||||
{
|
||||
eCurrentAxe = 1,
|
||||
eCurrentBow = 2,
|
||||
eCurrentCrossbow = 3,
|
||||
eCurrentDagger = 4,
|
||||
eCurrentMace = 5,
|
||||
eCurrentMeleeDefense = 6,
|
||||
eCurrentMissileDefense = 7,
|
||||
eCurrentSpear = 9,
|
||||
eCurrentStaff = 10,
|
||||
eCurrentSword = 11,
|
||||
eCurrentThrownWeapons = 12,
|
||||
eCurrentUnarmed = 13,
|
||||
eCurrentArcaneLore = 14,
|
||||
eCurrentMagicDefense = 15,
|
||||
eCurrentManaConversion = 16,
|
||||
eCurrentItemTinkering = 18,
|
||||
eCurrentAssessPerson = 19,
|
||||
eCurrentDeception = 20,
|
||||
eCurrentHealing = 21,
|
||||
eCurrentJump = 22,
|
||||
eCurrentLockpick = 23,
|
||||
eCurrentRun = 24,
|
||||
eCurrentAssessCreature = 27,
|
||||
eCurrentWeaponTinkering = 28,
|
||||
eCurrentArmorTinkering = 29,
|
||||
eCurrentMagicItemTinkering = 30,
|
||||
eCurrentCreatureEnchantment = 31,
|
||||
eCurrentItemEnchantment = 32,
|
||||
eCurrentLifeMagic = 33,
|
||||
eCurrentWarMagic = 34,
|
||||
eCurrentLeadership = 35,
|
||||
eCurrentLoyalty = 36,
|
||||
eCurrentFletchingSkill = 37,
|
||||
eCurrentAlchemySkill = 38,
|
||||
eCurrentCookingSkill = 39,
|
||||
eBaseAxe = 51,
|
||||
eBaseBow = 52,
|
||||
eBaseCrossbow = 53,
|
||||
eBaseDagger = 54,
|
||||
eBaseMace = 55,
|
||||
eBaseMeleeDefense = 56,
|
||||
eBaseMissileDefense = 57,
|
||||
eBaseSpear = 59,
|
||||
eBaseStaff = 60,
|
||||
eBaseSword = 61,
|
||||
eBaseThrownWeapons = 62,
|
||||
eBaseUnarmed = 63,
|
||||
eBaseArcaneLore = 64,
|
||||
eBaseMagicDefense = 65,
|
||||
eBaseManaConversion = 66,
|
||||
eBaseItemTinkering = 68,
|
||||
eBaseAssessPerson = 69,
|
||||
eBaseDeception = 70,
|
||||
eBaseHealing = 71,
|
||||
eBaseJump = 72,
|
||||
eBaseLockpick = 73,
|
||||
eBaseRun = 74,
|
||||
eBaseAssessCreature = 77,
|
||||
eBaseWeaponTinkering = 78,
|
||||
eBaseArmorTinkering = 79,
|
||||
eBaseMagicItemTinkering = 80,
|
||||
eBaseCreatureEnchantment = 81,
|
||||
eBaseItemEnchantment = 82,
|
||||
eBaseLifeMagic = 83,
|
||||
eBaseWarMagic = 84,
|
||||
eBaseLeadership = 85,
|
||||
eBaseLoyalty = 86,
|
||||
eBaseFletchingSkill = 87,
|
||||
eBaseAlchemySkill = 88,
|
||||
eBaseCookingSkill = 89,
|
||||
eSkill_DWORD = 0x7FFFFFFF
|
||||
};
|
||||
|
||||
enum eAvailableHooks
|
||||
{
|
||||
ePrevSelect = 0x00000001,
|
||||
eCurrentSelect = 0x00000002,
|
||||
eMouse = 0x00000004,
|
||||
eCastSpell = 0x00000008,
|
||||
eMoveItem = 0x00000010,
|
||||
eSelectItem = 0x00000020,
|
||||
eUseItem = 0x00000040,
|
||||
eCombatState = 0x00000080,
|
||||
eChatState = 0x00000100,
|
||||
eGetFellowStats = 0x00000200,
|
||||
eStackCount = 0x00000400,
|
||||
eTestFormula = 0x00000800,
|
||||
eVendorID = 0x00001000,
|
||||
eBusyState = 0x00002000,
|
||||
eBusyStateID = 0x00004000,
|
||||
ePointerState = 0x00008000,
|
||||
eMoveItemEx = 0x00010000,
|
||||
ePosition = 0x00020000,
|
||||
eFaceHeading = 0x00040000,
|
||||
eArea3DWidth = 0x00080000,
|
||||
eArea3DHeight = 0x00100000,
|
||||
eObjectDestroyed = 0x00200000,
|
||||
eSendTell = 0x00400000,
|
||||
eSetAutorun = 0x00800000,
|
||||
eGetVital = 0x01000000,
|
||||
eSendTellEx = 0x02000000,
|
||||
eLocalChatText = 0x04000000,
|
||||
eLocalChatEmote = 0x08000000,
|
||||
eSetCombatState = 0x10000000,
|
||||
eGetAttribute = 0x20000000,
|
||||
eGetSkill = 0x40000000,
|
||||
eHooksAvailEx = 0x80000000
|
||||
};
|
||||
|
||||
// Items in here go in sequence (0, 1, 2, 3, ...), not as a bit-field
|
||||
enum eAvailableHooksEx
|
||||
{
|
||||
eLogout = 0,
|
||||
eSecureTrade_Add = 1,
|
||||
eColorEx = 2,
|
||||
eSkillInfo = 3,
|
||||
eAttributeInfo = 4,
|
||||
eVitalInfo = 5,
|
||||
eObjectFromGUID = 6,
|
||||
eObjectFromGUIDClass = 7,
|
||||
eOnSelectItemEvent = 8,
|
||||
eRequestID = 9,
|
||||
eIDQueueAdd = 10,
|
||||
eUstAddItem = 11,
|
||||
eSendMessageByMask = 12,
|
||||
eToolText = 13,
|
||||
eToolText2 = 14,
|
||||
eUseItemRaw = 15,
|
||||
eUseFociSpell = 16,
|
||||
eSetIdleTime = 17,
|
||||
eSetDay = 18,
|
||||
eGiveItem = 19,
|
||||
eMoveItemExRaw = 20,
|
||||
eAvailableHooksEx_DWORD = 0x7FFFFFFF // coerce enums into 4 byte instead of two
|
||||
};
|
||||
|
||||
|
||||
importlib("stdole32.tlb");
|
||||
importlib("stdole2.tlb");
|
||||
|
||||
interface IDecalSurrogate;
|
||||
interface IDecalFileSurrogate;
|
||||
interface IDecalUninstall;
|
||||
|
||||
interface IPlugin2;
|
||||
interface IDecalService;
|
||||
interface IDecalRender;
|
||||
interface IKitchenSink;
|
||||
dispinterface IACHooksEvents;
|
||||
|
||||
[
|
||||
uuid(4557D5A1-00DB-48F6-ACB3-4FEF30E2F358),
|
||||
helpstring("Decal Class")
|
||||
]
|
||||
coclass Decal
|
||||
{
|
||||
[default] interface IDecal;
|
||||
};
|
||||
|
||||
[
|
||||
uuid(E2284FC7-17E5-4846-ADAB-07953273C5FB),
|
||||
helpstring("PluginSite Class"),
|
||||
noncreatable
|
||||
]
|
||||
coclass PluginSite2
|
||||
{
|
||||
[default] interface IPluginSite2;
|
||||
};
|
||||
|
||||
[
|
||||
uuid(6DE65A82-C451-46E6-A82D-92137BE851AD),
|
||||
helpstring("DecalEnum Class"),
|
||||
noncreatable
|
||||
]
|
||||
coclass DecalEnum
|
||||
{
|
||||
[default] interface IDecalEnum;
|
||||
};
|
||||
|
||||
[
|
||||
uuid(144FBF76-E7FB-4B41-AE19-6B5AB0E0A89B),
|
||||
helpstring("SurrogateRemove Class")
|
||||
]
|
||||
coclass SurrogateRemove
|
||||
{
|
||||
[default] interface IDecalUninstall;
|
||||
};
|
||||
|
||||
[
|
||||
uuid(7559F22F-C56F-4621-AE08-9C354D799D4B),
|
||||
helpstring("ActiveXSurrogate Class")
|
||||
]
|
||||
coclass ActiveXSurrogate
|
||||
{
|
||||
[default] interface IDecalFileSurrogate;
|
||||
interface IDecalUninstall;
|
||||
};
|
||||
|
||||
[
|
||||
uuid(EA7BE91B-C98A-4138-8985-E22364BE8207),
|
||||
noncreatable,
|
||||
helpstring("DecalRes Class")
|
||||
]
|
||||
coclass DecalRes
|
||||
{
|
||||
[default] interface IDecalRes;
|
||||
};
|
||||
|
||||
[
|
||||
uuid(CB8875CD-ABC2-42AD-8175-8908706EED37),
|
||||
helpstring("ACHooks Class")
|
||||
]
|
||||
coclass ACHooks
|
||||
{
|
||||
[default] interface IACHooks;
|
||||
[default, source] interface IACHooksEvents;
|
||||
};
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue