53 lines
1.8 KiB
Plaintext
53 lines
1.8 KiB
Plaintext
[
|
||
uuid(ed838ecd-8a1e-4da7-bfda-9f2d12d07893),
|
||
version(1.0),
|
||
implicit_handle(handle_t hSpyBinding),
|
||
]
|
||
|
||
interface ISpy
|
||
{
|
||
import "oaidl.idl";
|
||
|
||
typedef struct RpcMessage {
|
||
int self; // 是否自己发的消息:0=否,1=是
|
||
int type; // 消息类型
|
||
int source; // 消息来源:0=好友消息,1=群消息
|
||
BSTR id; // 消息ID
|
||
BSTR xml; // 群其他消息
|
||
BSTR wxId; // 发送人微信ID
|
||
BSTR roomId; // 群ID
|
||
BSTR content; // 消息内容,MAC版最大:16384,即16KB
|
||
} RpcMessage_t;
|
||
|
||
// 模拟 map<int, wstring>
|
||
typedef struct RpcIntBstrPair {
|
||
int key;
|
||
BSTR value;
|
||
} RpcIntBstrPair_t;
|
||
typedef RpcIntBstrPair_t *PRpcIntBstrPair;
|
||
typedef RpcIntBstrPair_t **PPRpcIntBstrPair;
|
||
|
||
typedef struct RpcContact {
|
||
BSTR wxId; // 微信ID
|
||
BSTR wxCode; // 微信号
|
||
BSTR wxName; // 微信昵称
|
||
BSTR wxCountry; // 国家
|
||
BSTR wxProvince; // 省/州
|
||
BSTR wxCity; // 城市
|
||
BSTR wxGender; // 性别
|
||
} RpcContact_t;
|
||
typedef RpcContact_t *PRpcContact;
|
||
typedef RpcContact_t **PPRpcContact;
|
||
|
||
int IsLogin();
|
||
int SendTextMsg([ in, string ] const wchar_t *wxid, [ in, string ] const wchar_t *at_wxid,
|
||
[ in, string ] const wchar_t *msg);
|
||
int SendImageMsg([ in, string ] const wchar_t *wxid, [ in, string ] const wchar_t *path);
|
||
int GetMsgTypes([out] int *pNum, [ out, size_is(, *pNum) ] PPRpcIntBstrPair *msgTypes);
|
||
int GetContacts([out] int *pNum, [ out, size_is(, *pNum) ] PPRpcContact *contacts);
|
||
int GetDbNames([out] int *pNum, [ out, size_is(, *pNum) ] BSTR **dbs);
|
||
|
||
void EnableReceiveMsg();
|
||
[callback] int ReceiveMsg([in] RpcMessage_t rpcMsg);
|
||
};
|