summaryrefslogtreecommitdiff
path: root/plugins/ExternalAPI/m_dropbox.h
blob: f67a7810865a65d87cf953d678ecbd5c2223f80b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#ifndef M_DROPBOX_H_
#define M_DROPBOX_H_

// upload file on Dropbox
// wParam = (MCONTACT)hContact - NULL to send to the Dropbox contact
// lParam = (LPARAM)(const wchar_t*)path - full path to file
// returns file htansfer handle or NULL on failure
// returns immediately, without waiting for the send
// note, that you can track progress by using ME_PROTO_ACK
#define MS_DROPBOX_SEND_FILE     "Dropbox/Send/File"

// if you want to get download links of sent files
// use ME_DROPBOX_SENT hook. you'll get:
struct TRANSFERINFO
{
	HANDLE hProcess;	// hProcess
	int status;			// status of transfer. 0 on success otherwise fail
	char** data;		// NULL ended array of download links
};

// notifies a caller that file has been sent
// wParam = (MCONTACT)hContact
// lParam = (LPARAM)(TRANSFERINFO*)info - transfer info
#define ME_DROPBOX_SENT "Dropbox/Sent/Event"

struct DropboxUploadInfo
{
	const TCHAR *localPath; // local path
	const TCHAR *serverPath; // relative path on server (can be NULL)
};

// upload file on Dropbox
// wParam = 0
// lParam = (LPARAM)(const DropboxUploadInfo*)
// returns status of transfer.
// 0 on success otherwise fail
#define MS_DROPBOX_UPLOAD     "Dropbox/Upload"

// upload file on Dropbox
// wParam = 0
// lParam = (LPARAM)(const DropboxUploadInfo*)
// returns file htansfer handle or NULL on failure
// returns immediately, without waiting for the send
// note, that you can track progress by using ME_PROTO_ACK
#define MS_DROPBOX_UPLOADASYNC     "Dropbox/UploadAsync"

// if you want to get download links after upload
// use ME_DROPBOX_UPLOADED hook. you'll get:
struct DropboxUploadResult
{
	HANDLE hProcess;	// hProcess
	int status;			// status of transfer. 0 on success otherwise fail
	const char* data;	// data
};

// notifies a caller that upload has been finished
// wParam = 0
// lParam = (LPARAM)(DropboxUploadResult*)
#define ME_DROPBOX_UPLOADED "Dropbox/Uploaded"

#endif //M_DROPBOX_H_