ReactOS 0.4.17-dev-357-ga8f14ff
inetcomm_private.h File Reference
#include "winsock2.h"
#include "winuser.h"
#include "objbase.h"
#include "imnxport.h"
Include dependency graph for inetcomm_private.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  InternetTransport
 

Typedefs

typedef struct InternetTransport InternetTransport
 
typedef void(* INETXPORT_COMPLETION_FUNCTION) (IInternetTransport *, char *, int)
 

Functions

HRESULT InternetTransport_Init (InternetTransport *This)
 
HRESULT InternetTransport_GetServerInfo (InternetTransport *This, LPINETSERVER pInetServer)
 
HRESULT InternetTransport_InetServerFromAccount (InternetTransport *This, IImnAccount *pAccount, LPINETSERVER pInetServer)
 
HRESULT InternetTransport_Connect (InternetTransport *This, LPINETSERVER pInetServer, boolean fAuthenticate, boolean fCommandLogging)
 
HRESULT InternetTransport_HandsOffCallback (InternetTransport *This)
 
HRESULT InternetTransport_DropConnection (InternetTransport *This)
 
HRESULT InternetTransport_GetStatus (InternetTransport *This, IXPSTATUS *pCurrentStatus)
 
HRESULT InternetTransport_ChangeStatus (InternetTransport *This, IXPSTATUS Status)
 
HRESULT InternetTransport_ReadLine (InternetTransport *This, INETXPORT_COMPLETION_FUNCTION fnCompletion)
 
HRESULT InternetTransport_Write (InternetTransport *This, const char *pvData, int cbSize, INETXPORT_COMPLETION_FUNCTION fnCompletion)
 
HRESULT InternetTransport_DoCommand (InternetTransport *This, LPCSTR pszCommand, INETXPORT_COMPLETION_FUNCTION fnCompletion)
 
BOOL InternetTransport_RegisterClass (HINSTANCE hInstance)
 
void InternetTransport_UnregisterClass (HINSTANCE hInstance)
 
HRESULT MimeBody_create (IUnknown *outer, void **obj)
 
HRESULT MimeAllocator_create (IUnknown *outer, void **obj)
 
HRESULT MimeMessage_create (IUnknown *outer, void **obj)
 
HRESULT MimeSecurity_create (IUnknown *outer, void **obj)
 
HRESULT VirtualStream_create (IUnknown *outer, void **obj)
 
HRESULT MimeHtmlProtocol_create (IUnknown *outer, void **obj)
 
HRESULT MimeInternational_Construct (IMimeInternational **internat)
 
HRESULT SMTPTransportCF_Create (REFIID riid, LPVOID *ppv)
 
HRESULT IMAPTransportCF_Create (REFIID riid, LPVOID *ppv)
 
HRESULT POP3TransportCF_Create (REFIID riid, LPVOID *ppv)
 

Typedef Documentation

◆ INETXPORT_COMPLETION_FUNCTION

typedef void(* INETXPORT_COMPLETION_FUNCTION) (IInternetTransport *, char *, int)

Definition at line 30 of file inetcomm_private.h.

◆ InternetTransport

Definition at line 28 of file inetcomm_private.h.

Function Documentation

◆ IMAPTransportCF_Create()

HRESULT IMAPTransportCF_Create ( REFIID  riid,
LPVOID ppv 
)

Definition at line 508 of file imaptransport.c.

509{
510 return IClassFactory_QueryInterface((IClassFactory *)&IMAPTransportCF, riid, ppv);
511}
static const IClassFactoryVtbl * IMAPTransportCF
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39

Referenced by DllGetClassObject().

◆ InternetTransport_ChangeStatus()

HRESULT InternetTransport_ChangeStatus ( InternetTransport This,
IXPSTATUS  Status 
)

Definition at line 192 of file internettransport.c.

193{
194 This->Status = Status;
195 if (This->pCallback)
196 ITransportCallback_OnStatus(This->pCallback, Status,
197 (IInternetTransport *)&This->u.vtbl);
198 return S_OK;
199}
Status
Definition: gdiplustypes.h:24
#define S_OK
Definition: intsafe.h:52

Referenced by InternetTransport_Connect(), InternetTransport_DropConnection(), POP3Transport_CallbackProcessPASSResp(), POP3Transport_CommandQUIT(), SMTPTransport_CallbackProcessHelloResp(), and SMTPTransport_CommandQUIT().

◆ InternetTransport_Connect()

HRESULT InternetTransport_Connect ( InternetTransport This,
LPINETSERVER  pInetServer,
boolean  fAuthenticate,
boolean  fCommandLogging 
)

Definition at line 71 of file internettransport.c.

73{
74 struct addrinfo *ai;
75 struct addrinfo *ai_cur;
76 struct addrinfo hints;
77 int ret;
78 char szPort[10];
79
80 if (This->Status != IXP_DISCONNECTED)
81 return IXP_E_ALREADY_CONNECTED;
82
83 This->ServerInfo = *pInetServer;
84 This->fCommandLogging = fCommandLogging;
85
86 This->hwnd = CreateWindowW(wszClassName, wszClassName, 0, 0, 0, 0, 0, NULL, NULL, NULL, 0);
87 if (!This->hwnd)
90
91 hints.ai_flags = 0;
92 hints.ai_family = PF_UNSPEC;
93 hints.ai_socktype = SOCK_STREAM;
94 hints.ai_protocol = IPPROTO_TCP;
95 hints.ai_addrlen = 0;
96 hints.ai_addr = NULL;
97 hints.ai_canonname = NULL;
98 hints.ai_next = NULL;
99
100 snprintf(szPort, sizeof(szPort), "%d", (unsigned short)pInetServer->dwPort);
101
103
104 ret = getaddrinfo(pInetServer->szServerName, szPort, &hints, &ai);
105 if (ret)
106 {
107 ERR("getaddrinfo failed: %d\n", ret);
108 return IXP_E_CANT_FIND_HOST;
109 }
110
111 for (ai_cur = ai; ai_cur; ai_cur = ai->ai_next)
112 {
113 int so;
114
115 if (TRACE_ON(inetcomm))
116 {
117 char host[256];
118 char service[256];
119 getnameinfo(ai_cur->ai_addr, ai_cur->ai_addrlen,
120 host, sizeof(host), service, sizeof(service),
122 TRACE("trying %s:%s\n", host, service);
123 }
124
126
127 so = socket(ai_cur->ai_family, ai_cur->ai_socktype, ai_cur->ai_protocol);
128 if (so == -1)
129 {
130 WARN("socket() failed\n");
131 continue;
132 }
133 This->Socket = so;
134
135 /* FIXME: set to async */
136
137 if (0 > connect(This->Socket, ai_cur->ai_addr, ai_cur->ai_addrlen))
138 {
139 WARN("connect() failed\n");
140 closesocket(This->Socket);
141 continue;
142 }
144
145 /* FIXME: call WSAAsyncSelect */
146
147 freeaddrinfo(ai);
148 TRACE("connected\n");
149 return S_OK;
150 }
151
152 freeaddrinfo(ai);
153
154 return IXP_E_CANT_FIND_HOST;
155}
#define WARN(fmt,...)
Definition: precomp.h:61
#define ERR(fmt,...)
Definition: precomp.h:57
#define NULL
Definition: types.h:112
#define TRACE_ON(x)
Definition: compat.h:75
return ret
Definition: mutex.c:146
#define IPPROTO_TCP
Definition: ip.h:197
#define SOCK_STREAM
Definition: tcpip.h:118
@ IXP_CONNECTING
Definition: imnxport.idl:246
@ IXP_CONNECTED
Definition: imnxport.idl:248
@ IXP_DISCONNECTED
Definition: imnxport.idl:253
@ IXP_FINDINGHOST
Definition: imnxport.idl:245
HRESULT InternetTransport_ChangeStatus(InternetTransport *This, IXPSTATUS Status)
static const WCHAR wszClassName[]
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
#define closesocket
Definition: ncftp.h:477
namespace GUID const ADDRINFOEXW * hints
Definition: sock.c:80
#define TRACE(s)
Definition: solgame.cpp:4
DWORD dwPort
Definition: imnxport.idl:226
CHAR szServerName[CCHMAX_SERVER_NAME]
Definition: imnxport.idl:223
size_t ai_addrlen
Definition: ws2def.h:675
struct sockaddr * ai_addr
Definition: ws2def.h:677
int ai_socktype
Definition: ws2def.h:673
int ai_protocol
Definition: ws2def.h:674
struct addrinfo * ai_next
Definition: ws2def.h:678
int ai_family
Definition: ws2def.h:672
Definition: txthost.c:37
#define GWLP_USERDATA
Definition: treelist.c:63
DWORD WINAPI GetLastError(void)
Definition: except.c:1042
static HRESULT HRESULT_FROM_WIN32(unsigned int x)
Definition: winerror.h:210
#define PF_UNSPEC
Definition: winsock.h:365
#define snprintf
Definition: wintirpc.h:48
#define CreateWindowW(a, b, c, d, e, f, g, h, i, j, k)
Definition: winuser.h:4470
#define SetWindowLongPtrW
Definition: winuser.h:5512
#define NI_NUMERICHOST
Definition: ws2def.h:360
#define NI_NUMERICSERV
Definition: ws2def.h:362
#define getaddrinfo
Definition: wspiapi.h:44
#define getnameinfo
Definition: wspiapi.h:45
#define freeaddrinfo
Definition: wspiapi.h:46

Referenced by IMAPTransport_Connect(), POP3Transport_Connect(), and SMTPTransport_Connect().

◆ InternetTransport_DoCommand()

HRESULT InternetTransport_DoCommand ( InternetTransport This,
LPCSTR  pszCommand,
INETXPORT_COMPLETION_FUNCTION  fnCompletion 
)

Definition at line 248 of file internettransport.c.

250{
251 if (This->Status == IXP_DISCONNECTED)
252 return IXP_E_NOT_CONNECTED;
253
254 if (This->fnCompletion)
255 return IXP_E_BUSY;
256
257 if (This->pCallback && This->fCommandLogging)
258 {
259 ITransportCallback_OnCommand(This->pCallback, CMD_SEND, (LPSTR)pszCommand, 0,
260 (IInternetTransport *)&This->u.vtbl);
261 }
262 return InternetTransport_Write(This, pszCommand, strlen(pszCommand), fnCompletion);
263}
_ACRTIMP size_t __cdecl strlen(const char *)
Definition: string.c:1597
HRESULT InternetTransport_Write(InternetTransport *This, const char *pvData, int cbSize, INETXPORT_COMPLETION_FUNCTION fnCompletion)
char * LPSTR
Definition: typedefs.h:51

Referenced by POP3Transport_CallbackProcessUSERResp(), POP3Transport_CallbackSendUSERCmd(), POP3Transport_CommandDELE(), POP3Transport_CommandLIST(), POP3Transport_CommandNOOP(), POP3Transport_CommandPASS(), POP3Transport_CommandQUIT(), POP3Transport_CommandRETR(), POP3Transport_CommandRSET(), POP3Transport_CommandSTAT(), POP3Transport_CommandTOP(), POP3Transport_CommandUIDL(), POP3Transport_CommandUSER(), SMTPTransport_CallbackMessageSendDOT(), SMTPTransport_CallbackMessageSendTo(), SMTPTransport_CallbackSendHello(), SMTPTransport_CommandAUTH(), SMTPTransport_CommandDATA(), SMTPTransport_CommandEHLO(), SMTPTransport_CommandHELO(), SMTPTransport_CommandMAIL(), SMTPTransport_CommandQUIT(), SMTPTransport_CommandRCPT(), SMTPTransport_CommandRSET(), and SMTPTransport_SendMessage().

◆ InternetTransport_DropConnection()

HRESULT InternetTransport_DropConnection ( InternetTransport This)

Definition at line 168 of file internettransport.c.

169{
170 if (This->Status == IXP_DISCONNECTED)
171 return IXP_E_NOT_CONNECTED;
172
173 shutdown(This->Socket, SD_BOTH);
174
175 closesocket(This->Socket);
176
177 DestroyWindow(This->hwnd);
178 This->hwnd = NULL;
179
181
182 return S_OK;
183}
INT WSAAPI shutdown(IN SOCKET s, IN INT how)
Definition: sockctrl.c:506
#define SD_BOTH
Definition: winsock.h:50
BOOL WINAPI DestroyWindow(_In_ HWND)

Referenced by IMAPTransport_DropConnection(), IMAPTransport_Release(), POP3Transport_CallbackProcessQUITResponse(), POP3Transport_DropConnection(), POP3Transport_Release(), SMTPTransport_CallbackDisconnect(), SMTPTransport_DropConnection(), and SMTPTransport_Release().

◆ InternetTransport_GetServerInfo()

HRESULT InternetTransport_GetServerInfo ( InternetTransport This,
LPINETSERVER  pInetServer 
)

Definition at line 55 of file internettransport.c.

56{
57 if (This->Status == IXP_DISCONNECTED)
58 return IXP_E_NOT_CONNECTED;
59
60 *pInetServer = This->ServerInfo;
61 return S_OK;
62}

Referenced by IMAPTransport_GetServerInfo(), POP3Transport_GetServerInfo(), and SMTPTransport_GetServerInfo().

◆ InternetTransport_GetStatus()

HRESULT InternetTransport_GetStatus ( InternetTransport This,
IXPSTATUS pCurrentStatus 
)

Definition at line 185 of file internettransport.c.

187{
188 *pCurrentStatus = This->Status;
189 return S_OK;
190}

Referenced by IMAPTransport_GetStatus(), POP3Transport_GetStatus(), and SMTPTransport_GetStatus().

◆ InternetTransport_HandsOffCallback()

HRESULT InternetTransport_HandsOffCallback ( InternetTransport This)

Definition at line 157 of file internettransport.c.

158{
159 if (!This->pCallback)
160 return S_FALSE;
161
162 ITransportCallback_Release(This->pCallback);
163 This->pCallback = NULL;
164
165 return S_OK;
166}
#define S_FALSE
Definition: winerror.h:3451

Referenced by IMAPTransport_HandsOffCallback(), POP3Transport_HandsOffCallback(), and SMTPTransport_HandsOffCallback().

◆ InternetTransport_InetServerFromAccount()

HRESULT InternetTransport_InetServerFromAccount ( InternetTransport This,
IImnAccount pAccount,
LPINETSERVER  pInetServer 
)

Definition at line 64 of file internettransport.c.

66{
67 FIXME("(%p, %p): stub\n", pAccount, pInetServer);
68 return E_NOTIMPL;
69}
#define FIXME(fmt,...)
Definition: precomp.h:53
#define E_NOTIMPL
Definition: ddrawi.h:99

Referenced by IMAPTransport_InetServerFromAccount(), POP3Transport_InetServerFromAccount(), and SMTPTransport_InetServerFromAccount().

◆ InternetTransport_Init()

HRESULT InternetTransport_Init ( InternetTransport This)

Definition at line 44 of file internettransport.c.

45{
46 This->pCallback = NULL;
47 This->Status = IXP_DISCONNECTED;
48 This->Socket = -1;
49 This->fCommandLogging = FALSE;
50 This->fnCompletion = NULL;
51
52 return S_OK;
53}
#define FALSE
Definition: types.h:117

Referenced by CreateIMAPTransport(), CreatePOP3Transport(), and CreateSMTPTransport().

◆ InternetTransport_ReadLine()

HRESULT InternetTransport_ReadLine ( InternetTransport This,
INETXPORT_COMPLETION_FUNCTION  fnCompletion 
)

Definition at line 201 of file internettransport.c.

203{
204 if (This->Status == IXP_DISCONNECTED)
205 return IXP_E_NOT_CONNECTED;
206
207 if (This->fnCompletion)
208 return IXP_E_BUSY;
209
210 This->fnCompletion = fnCompletion;
211
212 This->cbBuffer = 1024;
213 This->pBuffer = HeapAlloc(GetProcessHeap(), 0, This->cbBuffer);
214 This->iCurrentBufferOffset = 0;
215
216 if (WSAAsyncSelect(This->Socket, This->hwnd, IX_READLINE, FD_READ) == SOCKET_ERROR)
217 {
218 ERR("WSAAsyncSelect failed with error %d\n", WSAGetLastError());
219 /* FIXME: handle error */
220 }
221 return S_OK;
222}
#define GetProcessHeap()
Definition: compat.h:736
#define HeapAlloc
Definition: compat.h:733
INT WSAAPI WSAAsyncSelect(IN SOCKET s, IN HWND hWnd, IN UINT wMsg, IN LONG lEvent)
Definition: select.c:134
#define IX_READLINE
int PASCAL FAR WSAGetLastError(void)
Definition: dllmain.c:131
#define FD_READ
Definition: winsock.h:399
#define SOCKET_ERROR
Definition: winsock.h:327

Referenced by POP3Transport_CallbackProcessLISTResp(), POP3Transport_CallbackProcessRETRResp(), POP3Transport_CallbackProcessTOPResp(), POP3Transport_CallbackProcessUIDLResp(), POP3Transport_CallbackRecvDELEResp(), POP3Transport_CallbackRecvLISTResp(), POP3Transport_CallbackRecvNOOPResp(), POP3Transport_CallbackRecvPASSResp(), POP3Transport_CallbackRecvQUITResp(), POP3Transport_CallbackRecvRETRResp(), POP3Transport_CallbackRecvRSETResp(), POP3Transport_CallbackRecvSTATResp(), POP3Transport_CallbackRecvTOPResp(), POP3Transport_CallbackRecvUIDLResp(), POP3Transport_CallbackRecvUSERResp(), POP3Transport_Connect(), SMTPTransport_CallbackMessageReadDataResponse(), SMTPTransport_CallbackMessageReadFromResponse(), SMTPTransport_CallbackMessageReadResponse(), SMTPTransport_CallbackMessageReadToResponse(), SMTPTransport_CallbackProcessHelloResp(), SMTPTransport_CallbackReadDATAResponse(), SMTPTransport_CallbackReadMAILResponse(), SMTPTransport_CallbackReadRCPTResponse(), SMTPTransport_CallbackReadResponseDoNothing(), SMTPTransport_CallbackRecvHelloResp(), and SMTPTransport_Connect().

◆ InternetTransport_RegisterClass()

BOOL InternetTransport_RegisterClass ( HINSTANCE  hInstance)

Definition at line 367 of file internettransport.c.

368{
369 WNDCLASSW cls;
370 WSADATA wsadata;
371
372 if (WSAStartup(MAKEWORD(2, 2), &wsadata))
373 return FALSE;
374
375 memset(&cls, 0, sizeof(cls));
376 cls.hInstance = hInstance;
379
380 return RegisterClassW(&cls);
381}
HINSTANCE hInstance
Definition: charmap.c:19
static LRESULT CALLBACK InternetTransport_WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
#define memset(x, y, z)
Definition: compat.h:39
LPCWSTR lpszClassName
Definition: winuser.h:3293
HINSTANCE hInstance
Definition: winuser.h:3288
WNDPROC lpfnWndProc
Definition: winuser.h:3285
#define MAKEWORD(a, b)
Definition: typedefs.h:248
INT WINAPI WSAStartup(IN WORD wVersionRequested, OUT LPWSADATA lpWSAData)
Definition: startup.c:113
ATOM WINAPI RegisterClassW(_In_ CONST WNDCLASSW *)

Referenced by DllMain().

◆ InternetTransport_UnregisterClass()

void InternetTransport_UnregisterClass ( HINSTANCE  hInstance)

Definition at line 383 of file internettransport.c.

384{
386 WSACleanup();
387}
int PASCAL FAR WSACleanup(void)
Definition: startup.c:60
BOOL WINAPI UnregisterClassW(_In_ LPCWSTR, HINSTANCE)

Referenced by DllMain().

◆ InternetTransport_Write()

HRESULT InternetTransport_Write ( InternetTransport This,
const char pvData,
int  cbSize,
INETXPORT_COMPLETION_FUNCTION  fnCompletion 
)

Definition at line 224 of file internettransport.c.

226{
227 int ret;
228
229 if (This->Status == IXP_DISCONNECTED)
230 return IXP_E_NOT_CONNECTED;
231
232 if (This->fnCompletion)
233 return IXP_E_BUSY;
234
235 /* FIXME: do this asynchronously */
236 ret = send(This->Socket, pvData, cbSize, 0);
237 if (ret == SOCKET_ERROR)
238 {
239 ERR("send failed with error %d\n", WSAGetLastError());
240 /* FIXME: handle error */
241 }
242
243 fnCompletion((IInternetTransport *)&This->u.vtbl, NULL, 0);
244
245 return S_OK;
246}
INT WSAAPI send(IN SOCKET s, IN CONST CHAR FAR *buf, IN INT len, IN INT flags)
Definition: send.c:23
_In_ LPWSTR _In_ DWORD _In_ LPCVOID pvData
Definition: netsh.h:116

Referenced by InternetTransport_DoCommand(), and SMTPTransport_CallbackMessageSendDataStream().

◆ MimeAllocator_create()

HRESULT MimeAllocator_create ( IUnknown outer,
void **  obj 
)

Definition at line 3505 of file mimeole.c.

3506{
3507 if(outer) return CLASS_E_NOAGGREGATION;
3508
3509 *obj = &mime_allocator;
3510 return S_OK;
3511}
static IMimeAllocator mime_allocator
Definition: mimeole.c:3500
static IUnknown * outer
Definition: compobj.c:82
#define CLASS_E_NOAGGREGATION
Definition: winerror.h:3771

Referenced by MimeOleGetAllocator().

◆ MimeBody_create()

HRESULT MimeBody_create ( IUnknown outer,
void **  obj 
)

Definition at line 1903 of file mimeole.c.

1904{
1905 MimeBody *mb;
1906
1907 if(outer)
1908 return CLASS_E_NOAGGREGATION;
1909
1910 if ((mb = mimebody_create()))
1911 {
1912 *ppv = &mb->IMimeBody_iface;
1913 return S_OK;
1914 }
1915 else
1916 {
1917 *ppv = NULL;
1918 return E_OUTOFMEMORY;
1919 }
1920}
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
static MimeBody * mimebody_create(void)
Definition: mimeole.c:1875
IMimeBody IMimeBody_iface
Definition: mimeole.c:153

◆ MimeHtmlProtocol_create()

HRESULT MimeHtmlProtocol_create ( IUnknown outer,
void **  obj 
)

Definition at line 710 of file protocol.c.

711{
713
714 protocol = malloc(sizeof(*protocol));
715 if(!protocol)
716 return E_OUTOFMEMORY;
717
718 protocol->IUnknown_inner.lpVtbl = &MimeHtmlProtocolInnerVtbl;
719 protocol->IInternetProtocol_iface.lpVtbl = &MimeHtmlProtocolVtbl;
720 protocol->IInternetProtocolInfo_iface.lpVtbl = &MimeHtmlProtocolInfoVtbl;
721 protocol->ref = 1;
722 protocol->outer_unk = outer ? outer : &protocol->IUnknown_inner;
723 protocol->location = NULL;
724 protocol->stream = NULL;
725 protocol->sink = NULL;
726
727 *obj = &protocol->IUnknown_inner;
728 return S_OK;
729}
#define malloc
Definition: debug_ros.c:4
static const IUnknownVtbl MimeHtmlProtocolInnerVtbl
Definition: protocol.c:411
static const IInternetProtocolInfoVtbl MimeHtmlProtocolInfoVtbl
Definition: protocol.c:700
static const IInternetProtocolVtbl MimeHtmlProtocolVtbl
Definition: protocol.c:587

◆ MimeInternational_Construct()

HRESULT MimeInternational_Construct ( IMimeInternational **  internat)

Definition at line 524 of file mimeintl.c.

525{
530 global_internat->cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": global_internat.cs");
531
535
537
538 IMimeInternational_AddRef(*internat);
539 return S_OK;
540}
static void list_init(struct list_entry *head)
Definition: list.h:51
static IMimeInternationalVtbl mime_internat_vtbl
Definition: mimeintl.c:500
static internat_impl * global_internat
Definition: mimeintl.c:522
BOOL WINAPI InitializeCriticalSectionEx(OUT LPCRITICAL_SECTION lpCriticalSection, IN DWORD dwSpinCount, IN DWORD flags)
Definition: sync.c:107
PRTL_CRITICAL_SECTION_DEBUG DebugInfo
Definition: rtltypes.h:1450
CRITICAL_SECTION cs
Definition: mimeintl.c:52
struct list charsets
Definition: mimeintl.c:54
IMimeInternational IMimeInternational_iface
Definition: mimeintl.c:50
HCHARSET default_charset
Definition: mimeintl.c:56
LONG next_charset_handle
Definition: mimeintl.c:55
#define DWORD_PTR
Definition: treelist.c:76
#define RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO
Definition: winnt_old.h:1156

Referenced by DllMain().

◆ MimeMessage_create()

HRESULT MimeMessage_create ( IUnknown outer,
void **  obj 
)

Definition at line 3068 of file mimeole.c.

3069{
3071 MimeBody *mime_body;
3072 body_t *root_body;
3073
3074 TRACE("(%p, %p)\n", outer, obj);
3075
3076 if (outer)
3077 {
3078 FIXME("outer unknown not supported yet\n");
3079 return E_NOTIMPL;
3080 }
3081
3082 *obj = NULL;
3083
3084 This = malloc(sizeof(*This));
3085 if (!This) return E_OUTOFMEMORY;
3086
3087 This->IMimeMessage_iface.lpVtbl = &MimeMessageVtbl;
3088 This->ref = 1;
3089 This->stream = NULL;
3090 list_init(&This->body_tree);
3091 This->next_index = 1;
3092
3093 mime_body = mimebody_create();
3094 root_body = new_body_entry(mime_body, This->next_index++, NULL);
3095 list_add_head(&This->body_tree, &root_body->entry);
3096
3097 *obj = &This->IMimeMessage_iface;
3098 return S_OK;
3099}
static void list_add_head(struct list_entry *head, struct list_entry *entry)
Definition: list.h:76
static body_t * new_body_entry(MimeBody *mime_body, DWORD index, body_t *parent)
Definition: mimeole.c:2024
static const IMimeMessageVtbl MimeMessageVtbl
Definition: mimeole.c:3008
struct list entry
Definition: mimeole.c:1924

Referenced by load_mime_message(), and MimeOleCreateMessage().

◆ MimeSecurity_create()

HRESULT MimeSecurity_create ( IUnknown outer,
void **  obj 
)

Definition at line 3293 of file mimeole.c.

3294{
3296
3297 *obj = NULL;
3298
3299 if (outer) return CLASS_E_NOAGGREGATION;
3300
3301 This = malloc(sizeof(*This));
3302 if (!This) return E_OUTOFMEMORY;
3303
3304 This->IMimeSecurity_iface.lpVtbl = &MimeSecurityVtbl;
3305 This->ref = 1;
3306
3307 *obj = &This->IMimeSecurity_iface;
3308 return S_OK;
3309}
static const IMimeSecurityVtbl MimeSecurityVtbl
Definition: mimeole.c:3276

Referenced by MimeOleCreateSecurity().

◆ POP3TransportCF_Create()

HRESULT POP3TransportCF_Create ( REFIID  riid,
LPVOID ppv 
)

Definition at line 1200 of file pop3transport.c.

1201{
1202 return IClassFactory_QueryInterface((IClassFactory *)&POP3TransportCF, riid, ppv);
1203}
static const IClassFactoryVtbl * POP3TransportCF

Referenced by DllGetClassObject().

◆ SMTPTransportCF_Create()

HRESULT SMTPTransportCF_Create ( REFIID  riid,
LPVOID ppv 
)

Definition at line 1041 of file smtptransport.c.

1042{
1043 return IClassFactory_QueryInterface((IClassFactory *)&SMTPTransportCF, riid, ppv);
1044}
static const IClassFactoryVtbl * SMTPTransportCF

Referenced by DllGetClassObject().

◆ VirtualStream_create()

HRESULT VirtualStream_create ( IUnknown outer,
void **  obj 
)

Definition at line 3518 of file mimeole.c.

3519{
3520 FIXME("(%p, %p)\n", outer, obj);
3521
3522 *obj = NULL;
3523 if (outer) return CLASS_E_NOAGGREGATION;
3524
3526}
HRESULT WINAPI MimeOleCreateVirtualStream(IStream **ppStream)
Definition: mimeole.c:3122