75 lines
2.7 KiB
Plaintext
75 lines
2.7 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;
|
||
|
||
typedef struct RpcTables {
|
||
BSTR table; // 表名
|
||
BSTR sql; // 建表 SQL
|
||
} RpcTables_t;
|
||
typedef RpcTables_t *PRpcTables;
|
||
typedef RpcTables_t **PPRpcTables;
|
||
|
||
typedef struct RpcSqlResult {
|
||
int type;
|
||
BSTR column;
|
||
BSTR content;
|
||
} RpcSqlResult_t;
|
||
typedef RpcSqlResult_t *PRpcSqlResult;
|
||
typedef RpcSqlResult_t **PPRpcSqlResult;
|
||
typedef RpcSqlResult_t ***PPPRpcSqlResult;
|
||
|
||
int IsLogin();
|
||
int SendTextMsg([ in, string ] const wchar_t *wxid, [ in, string ] const wchar_t *msg,
|
||
[ in, unique, string ] const wchar_t *atWxids);
|
||
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);
|
||
int GetDbTables([ in, string ] const wchar_t *db, [out] int *pNum, [ out, size_is(, *pNum) ] PPRpcTables *tbls);
|
||
int ExecDbQuery([ in, string ] const wchar_t *db,
|
||
[ in, string ] const wchar_t *sql, [out] int *pRow, [out] int *pCol,
|
||
[ out, size_is(, *pRow, *pCol) ] PPPRpcSqlResult *ret);
|
||
BOOL AcceptNewFriend([in, string] const wchar_t *v3, [in, string] const wchar_t *v4);
|
||
|
||
void EnableReceiveMsg();
|
||
void DisableReceiveMsg();
|
||
[callback] int ReceiveMsg([in] RpcMessage_t rpcMsg);
|
||
};
|