193 IStream_AddRef(iface);
219 IStream_Release(
This->base);
235 TRACE(
"(%p, %ld, %p)\n", pv,
cb, pcbRead);
238 IStream_Seek(
This->base, tmp_pos, STREAM_SEEK_SET,
NULL);
240 if(
This->pos.QuadPart +
cb >
This->length.QuadPart)
241 cb =
This->length.QuadPart -
This->pos.QuadPart;
243 hr = IStream_Read(
This->base, pv,
cb, pcbRead);
245 This->pos.QuadPart += *pcbRead;
269 TRACE(
"(%08lx.%08lx, %lx, %p)\n", dlibMove.
HighPart, dlibMove.
LowPart, dwOrigin, plibNewPosition);
273 case STREAM_SEEK_SET:
276 case STREAM_SEEK_CUR:
279 case STREAM_SEEK_END:
291 if(plibNewPosition) *plibNewPosition =
This->pos;
316 TRACE(
"(%p)->(%p, %ld, %p, %p)\n", iface, pstm,
cb.LowPart, pcbRead, pcbWritten);
321 while (
cb.QuadPart > 0 )
323 if (
cb.QuadPart >=
sizeof(tmpBuffer) )
324 copySize =
sizeof(tmpBuffer);
326 copySize =
cb.LowPart;
328 hr = IStream_Read(iface, tmpBuffer, copySize, &bytesRead);
331 totalBytesRead.
QuadPart += bytesRead;
340 if (bytesRead != copySize)
343 cb.QuadPart -= bytesRead;
354 DWORD grfCommitFlags)
393 FIXME(
"(%p)->(%p, %08lx)\n",
This, pstatstg, grfStatFlag);
394 memset(pstatstg, 0,
sizeof(*pstatstg));
395 pstatstg->cbSize =
This->length;
437 This->pos.QuadPart = 0;
447 STATSTG statstg = {
NULL};
451 hres = IStream_Stat(
stream, &statstg, STATFLAG_NONAME);
453 *
size = statstg.cbSize;
477#define PARSER_BUF_SIZE 1024
519 if(new_end - last_end == 2)
523 IStream_Seek(stm, off, STREAM_SEEK_CUR,
NULL);
546 if(!colon)
return NULL;
554 TRACE(
"%s: found match with default property id %ld\n", *
ptr, prop->
id);
566 TRACE(
"%s: found match with already added new property id %ld\n", *
ptr, prop_entry->
prop.
id);
567 prop = &prop_entry->
prop;
573 prop_entry =
malloc(
sizeof(*prop_entry));
579 prop = &prop_entry->
prop;
580 TRACE(
"%s: allocating new prop id %ld\n", *
ptr, prop_entry->
prop.
id);
586 PropVariantInit(&
ret->value);
598 while(*
cp ==
' ' || *
cp ==
'\t')
613 }
while(*
cp ==
' ' || *
cp ==
'\t');
623 while(*
str ==
' ' || *
str ==
'\t')
str++;
639 WARN(
"quote in unquoted string\n");
657 TRACE(
"got param %s\n",
p);
659 while (*
key ==
' ' || *
key ==
'\t' )
key++;
664 WARN(
"malformed parameter - skipping\n");
687 if(!in_quotes && *
cp ==
';')
695 in_quotes = !in_quotes;
709 }
while(*
end ==
' ' || *
end ==
'\t');
719 if(
header->prop->flags & MPF_HASPARAMS)
739 WARN(
"malformed context type value\n");
745 body->content_pri_type[
len] =
'\0';
753 if(!
stricmp(encoding,
"base64"))
754 body->encoding = IET_BASE64;
755 else if(!
stricmp(encoding,
"quoted-printable"))
756 body->encoding = IET_QP;
757 else if(!
stricmp(encoding,
"7bit"))
758 body->encoding = IET_7BIT;
759 else if(!
stricmp(encoding,
"8bit"))
760 body->encoding = IET_8BIT;
767 char *header_buf, *cur_header_ptr;
774 cur_header_ptr = header_buf;
780 switch(
header->prop->id) {
870 return MIME_E_NOT_FOUND;
881 if(STRTOPID(
name) == prop_def->
id)
893 TRACE(
"%s: found match with default property id %ld\n", prop_def->
name, prop_def->
id);
919 IUnknown_AddRef((
IUnknown*)*ppvObject);
971 *pClassID = IID_IMimeBody;
993 FIXME(
"(%p)->(%p, %d)\n",
This, pStm, fClearDirty);
1002 FIXME(
"(%p)->(%p) stub\n",
This, pcbSize);
1017 LPMIMEPROPINFO pInfo)
1022 DWORD supported = PIM_PROPID | PIM_VTDEFAULT;
1026 if(!pszName || !pInfo)
1029 TRACE(
"mask 0x%04lx\n", pInfo->dwMask);
1031 if(pInfo->dwMask & ~supported)
1032 FIXME(
"Unsupported mask flags 0x%04lx\n", pInfo->dwMask & ~supported);
1037 if(pInfo->dwMask & PIM_CHARSET)
1038 pInfo->hCharset = 0;
1039 if(pInfo->dwMask & PIM_FLAGS)
1040 pInfo->dwFlags = 0x00000000;
1041 if(pInfo->dwMask & PIM_ROWNUMBER)
1042 pInfo->dwRowNumber = 0;
1043 if(pInfo->dwMask & PIM_ENCODINGTYPE)
1044 pInfo->ietEncoding = 0;
1045 if(pInfo->dwMask & PIM_VALUES)
1047 if(pInfo->dwMask & PIM_PROPID)
1048 pInfo->dwPropId =
header->prop->id;
1049 if(pInfo->dwMask & PIM_VTDEFAULT)
1050 pInfo->vtDefault =
header->prop->default_vt;
1051 if(pInfo->dwMask & PIM_VTCURRENT)
1052 pInfo->vtCurrent = 0;
1061 LPCMIMEPROPINFO pInfo)
1083 if(!ISPIDSTR(pszName) && !
lstrcmpiA(pszName,
"att:pri-content-type"))
1128 if(ISPIDSTR(pszName))
1130 if(STRTOPID(pszName) == prop_entry->
prop.
id)
1132 TRACE(
"Found match with already added new property id %ld\n", prop_entry->
prop.
id);
1133 prop = &prop_entry->
prop;
1139 TRACE(
"Found match with already added new property id %ld\n", prop_entry->
prop.
id);
1140 prop = &prop_entry->
prop;
1152 prop_entry =
malloc(
sizeof(*prop_entry));
1163 prop_entry->
prop.
id = prop_def->
id;
1167 if(ISPIDSTR(pszName))
1171 return MIME_E_NOT_FOUND;
1181 prop = &prop_entry->
prop;
1182 TRACE(
"Allocating new prop id %ld\n", prop_entry->
prop.
id);
1219 if(ISPIDSTR(pszName))
1220 found = STRTOPID(pszName) ==
cursor->prop->id;
1231 return MIME_E_NOT_FOUND;
1238 IMimePropertySet* pPropertySet)
1241 FIXME(
"(%p)->(%ld, %p, %p) stub\n",
This, cNames, prgszName, pPropertySet);
1249 IMimePropertySet* pPropertySet)
1252 FIXME(
"(%p)->(%ld, %p, %p) stub\n",
This, cNames, prgszName, pPropertySet);
1262 FIXME(
"(%p)->(%ld, %p) stub\n",
This, cNames, prgszName);
1271 boolean fCaseSensitive)
1280 LPHCHARSET phCharset)
1283 FIXME(
"(%p)->(%p) stub\n",
This, phCharset);
1291 CSETAPPLYTYPE applytype)
1294 FIXME(
"(%p)->(%p, %d) stub\n",
This, hCharset, applytype);
1302 LPMIMEPARAMINFO* pprgParam)
1308 TRACE(
"(%p)->(%s, %p, %p)\n", iface,
debugstr_a(pszName), pcParams, pprgParam);
1319 IMimeAllocator *
alloc;
1321 MIMEPARAMINFO *
info;
1325 *pprgParam =
info = IMimeAllocator_Alloc(
alloc, *pcParams *
sizeof(**pprgParam));
1338 IMimeAllocator_Release(
alloc);
1353 const char *pri =
This->content_pri_type;
1354 if(!pri) pri =
"text";
1360 const char *sub =
This->content_sub_type;
1361 if(!sub) sub =
"plain";
1380 IMimePropertySet** ppPropertySet)
1383 FIXME(
"(%p)->(%p) stub\n",
This, ppPropertySet);
1396 if(
pValue->vt != TYPEDID_TYPE(oid))
1398 WARN(
"Called with vartype %04x and oid %08lx\n",
pValue->vt, oid);
1404 case OID_SECURITY_HWND_OWNER:
1405 FIXME(
"OID_SECURITY_HWND_OWNER (value %08lx): ignoring\n",
pValue->ulVal);
1408 case OID_TRANSMIT_BODY_ENCODING:
1409 FIXME(
"OID_TRANSMIT_BODY_ENCODING (value %08lx): ignoring\n",
pValue->ulVal);
1413 FIXME(
"Unhandled oid %08lx\n", oid);
1432 IMimeEnumProperties** ppEnum)
1441 IMSGBODYTYPE bodytype)
1451 FIXME(
"Unimplemented bodytype %d - returning S_OK\n", bodytype);
1470 FIXME(
"(%p)->(%p) stub\n",
This, ppszDisplay);
1476 LPBODYOFFSETS pOffsets)
1481 *pOffsets =
This->body_offsets;
1483 if(
This->body_offsets.cbBodyEnd == 0)
return MIME_E_NO_DATA;
1489 ENCODINGTYPE* pietEncoding)
1493 TRACE(
"(%p)->(%p)\n",
This, pietEncoding);
1495 *pietEncoding =
This->encoding;
1501 ENCODINGTYPE ietEncoding)
1505 TRACE(
"(%p)->(%d)\n",
This, ietEncoding);
1507 This->encoding = ietEncoding;
1513 ENCODINGTYPE ietEncoding,
1517 FIXME(
"(%p)->(%d, %p) stub\n",
This, ietEncoding, pcbSize);
1523 ENCODINGTYPE ietEncoding,
1527 FIXME(
"(%p)->(%d, %p) stub\n",
This, ietEncoding, pStream);
1533 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1534 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1535 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,
1536 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1,
1537 -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1538 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
1539 -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1540 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1
1545 const unsigned char *
ptr, *
end;
1546 unsigned char buf[1024];
1549 unsigned char in[4];
1583 *
ret++ =
in[0] << 2 |
in[1] >> 4;
1586 *
ret++ =
in[1] << 4 |
in[2] >> 2;
1589 *
ret++ = ((
in[2] << 6) & 0xc0) |
in[3];
1602 hres = IStream_Seek(output,
pos, STREAM_SEEK_SET,
NULL);
1604 IStream_Release(output);
1608 *ret_stream = output;
1614 if(
'0' <=
c &&
c <=
'9')
1616 if(
'A' <=
c &&
c <=
'F')
1617 return c -
'A' + 10;
1618 if(
'a' <=
c &&
c <=
'f')
1619 return c -
'a' + 10;
1625 const unsigned char *
ptr, *
end;
1626 unsigned char *
ret, prev = 0;
1627 unsigned char buf[1024];
1652 unsigned char byte = *
ptr++;
1666 if(prev !=
'\r' ||
byte !=
'\n') {
1668 if(h1 != -1 && h2 != -1)
1669 *
ret++ = (h1 << 4) | h2;
1686 hres = IStream_Seek(output,
pos, STREAM_SEEK_SET,
NULL);
1688 IStream_Release(output);
1692 *ret_stream = output;
1698 ENCODINGTYPE ietEncoding,
1705 TRACE(
"(%p)->(%d %p)\n",
This, ietEncoding, ppStream);
1707 if(
This->encoding != ietEncoding) {
1708 switch(
This->encoding) {
1716 FIXME(
"Decoding %d is not supported.\n",
This->encoding);
1719 if(ietEncoding != IET_BINARY)
1720 FIXME(
"Encoding %d is not supported.\n", ietEncoding);
1734 ENCODINGTYPE ietEncoding,
1745 IStream_AddRef((
IStream *)pvObject);
1756 This->data = pvObject;
1758 IMimeBody_SetCurrentEncoding(iface, ietEncoding);
1780 FIXME(
"(%p)->(%p) stub\n",
This, pBody);
1786 LPTRANSMITINFO pTransmitInfo)
1789 FIXME(
"(%p)->(%p) stub\n",
This, pTransmitInfo);
1795 ENCODINGTYPE ietEncoding,
1808 TRACE(
"(%p)->(%p)\n", iface, phBody);
1813 *phBody =
This->handle;
1814 return This->handle ?
S_OK : MIME_E_NO_DATA;
1866 TRACE(
"setting offsets to %ld, %ld, %ld, %ld\n",
offsets->cbBoundaryStart,
1873#define FIRST_CUSTOM_PROP_ID 0x100
1878 BODYOFFSETS body_offsets;
1892 This->encoding = IET_7BIT;
1896 body_offsets.cbBoundaryStart = body_offsets.cbHeaderStart = 0;
1897 body_offsets.cbBodyStart = body_offsets.cbBodyEnd = 0;
1958 IMimeMessage_AddRef(iface);
1984 IMimeBody_Release(&
body->mime_body->IMimeBody_iface);
2000 if(
This->stream) IStream_Release(
This->stream);
2012 FIXME(
"(%p)->(%p)\n", iface, pClassID);
2020 FIXME(
"(%p)->()\n", iface);
2029 body->mime_body = mime_body;
2049 int boundary_len =
strlen(boundary);
2050 char *
buf, *
ptr, *overlap;
2059 overlap_no = boundary_len + 5;
2064 hr = IStream_Seek(stm,
zero, STREAM_SEEK_CUR, &
cur);
2070 if(
read == 0)
break;
2071 overlap[
read] =
'\0';
2076 is_first_line =
FALSE;
2086 if(*
ptr ==
'-' && *(
ptr + 1) ==
'-' && !
memcmp(
ptr + 2, boundary, boundary_len)) {
2087 ptr += boundary_len + 2;
2089 if(*
ptr ==
'\r' && *(
ptr + 1) ==
'\n')
2094 cur_body->
offsets.cbBodyEnd = boundary_start - 2;
2097 cur_body =
malloc(
sizeof(*cur_body));
2098 cur_body->
offsets.cbBoundaryStart = boundary_start;
2101 else if(*
ptr ==
'-' && *(
ptr + 1) ==
'-')
2105 cur_body->
offsets.cbBodyEnd = boundary_start - 2;
2116 overlap =
buf + overlap_no;
2140 IStream_Seek(pStm,
pos, STREAM_SEEK_SET,
NULL);
2146 hr = IStream_Seek(pStm,
pos, STREAM_SEEK_CUR, &
start);
2158 MIMEPARAMINFO *param_info;
2160 IMimeAllocator *
alloc;
2170 if(!
lstrcmpiA(param_info[
i].pszName,
"boundary"))
2172 struct list offset_list;
2187 IMimeAllocator_FreeParamInfoArray(
alloc,
count, param_info,
TRUE);
2188 IMimeAllocator_Release(
alloc);
2201 TRACE(
"(%p)->(%p)\n", iface, pStm);
2205 FIXME(
"already loaded a message\n");
2211 IStream_AddRef(pStm);
2212 This->stream = pStm;
2219 IStream_Seek(pStm,
zero, STREAM_SEEK_END, &
cur);
2230 FIXME(
"(%p)->(%p, %s)\n", iface, pStm, fClearDirty ?
"TRUE" :
"FALSE");
2238 FIXME(
"(%p)->(%p)\n", iface, pcbSize);
2245 FIXME(
"(%p)->()\n", iface);
2255 FIXME(
"(%p)->(%p, 0x%lx)\n", iface, ppStream,
dwFlags);
2257 IStream_AddRef(
This->stream);
2258 *ppStream =
This->stream;
2275 FIXME(
"(%p)->(%p)\n", iface, pStream);
2293 FIXME(
"(%p)->(%p)\n", iface, pdwFlags);
2309 FIXME(
"(%p)->()\n", iface);
2318 if(hbody == HBODY_ROOT)
2352 IMimeBody_AddRef(&
body->mime_body->IMimeBody_iface);
2353 *ppvObject = &
body->mime_body->IMimeBody_iface;
2366 FIXME(
"(%p)->(%p, 0x%lx, %p)\n", iface, hBody,
dwFlags, pStream);
2393 hr = MIME_E_NOT_FOUND;
2401 hr = MIME_E_NOT_FOUND;
2409 hr = MIME_E_NOT_FOUND;
2417 hr = MIME_E_NOT_FOUND;
2425 hr = MIME_E_NOT_FOUND;
2444 FIXME(
"(%p)->(%d, %p, %p)\n", iface,
location, hPivot, phBody);
2455 TRACE(
"(%p)->(%d, %p, %p)\n", iface,
location, hPivot, phBody);
2505 TRACE(
"(%p)->(%p, %s, %p)\n", iface, hParent, fRecurse ?
"TRUE" :
"FALSE", pcBodies);
2529 if (!
body->parent)
return MIME_E_NOT_FOUND;
2537 if (IMimeBody_IsContentType(&
body->mime_body->IMimeBody_iface,
find->pszPriType,
2544 return MIME_E_NOT_FOUND;
2551 TRACE(
"(%p)->(%p, %p)\n", iface, pFindBody, phBody);
2553 pFindBody->dwReserved = 0;
2563 TRACE(
"(%p)->(%p, %p)\n", iface, pFindBody, phBody);
2566 if (
hr !=
S_OK)
return MIME_E_NOT_FOUND;
2578 FIXME(
"(%p)->(%p, %s, %s, 0x%lx, %p)\n", iface, hRelated, pszBase, pszURL,
dwFlags, phBody);
2586 LPHBODY phMultipart)
2588 FIXME(
"(%p)->(%p, %s, %p)\n", iface, hBody, pszSubType, phMultipart);
2595 LPBODYOFFSETS pOffsets)
2597 FIXME(
"(%p)->(%p, %p)\n", iface, hBody, pOffsets);
2603 LPHCHARSET phCharset)
2605 FIXME(
"(%p)->(%p)\n", iface, phCharset);
2613 CSETAPPLYTYPE applytype)
2615 FIXME(
"(%p)->(%p, %d)\n", iface, hCharset, applytype);
2622 IMSGBODYTYPE bodytype)
2626 TRACE(
"(%p)->(%p, %d)\n", iface, hBody, bodytype);
2628 hr = IMimeMessage_BindToObject(iface, hBody, &IID_IMimeBody, (
void**)&mime_body);
2631 hr = IMimeBody_IsType(mime_body, bodytype);
2647 hr = IMimeMessage_BindToObject(iface, hBody, &IID_IMimeBody, (
void**)&mime_body);
2650 hr = IMimeBody_IsContentType(mime_body, pszPriType, pszSubType);
2651 IMimeBody_Release(mime_body);
2661 boolean fCaseSensitive)
2663 FIXME(
"(%p)->(%p, %s, %s, %s, %s)\n", iface, hBody, pszName, pszCriteria, fSubString ?
"TRUE" :
"FALSE", fCaseSensitive ?
"TRUE" :
"FALSE");
2679 hr = IMimeMessage_BindToObject(iface, hBody, &IID_IMimeBody, (
void**)&mime_body);
2683 IMimeBody_Release(mime_body);
2704 FIXME(
"(%p)->(%p, %s)\n", iface, hBody, pszName);
2719 if(TYPEDID_ID(oid) < TYPEDID_ID(OID_ALLOW_8BIT_HEADER) || TYPEDID_ID(oid) > TYPEDID_ID(OID_SECURITY_2KEY_CERT_BAG_64))
2721 WARN(
"oid (%08lx) out of range\n", oid);
2722 return MIME_E_INVALID_OPTION_ID;
2725 if(
pValue->vt != TYPEDID_TYPE(oid))
2727 WARN(
"Called with vartype %04x and oid %08lx\n",
pValue->vt, oid);
2733 case OID_HIDE_TNEF_ATTACHMENTS:
2734 FIXME(
"OID_HIDE_TNEF_ATTACHMENTS (value %d): ignoring\n",
pValue->boolVal);
2736 case OID_SHOW_MACBINARY:
2737 FIXME(
"OID_SHOW_MACBINARY (value %d): ignoring\n",
pValue->boolVal);
2739 case OID_SAVEBODY_KEEPBOUNDARY:
2740 FIXME(
"OID_SAVEBODY_KEEPBOUNDARY (value %d): ignoring\n",
pValue->boolVal);
2742 case OID_CLEANUP_TREE_ON_SAVE:
2743 FIXME(
"OID_CLEANUP_TREE_ON_SAVE (value %d): ignoring\n",
pValue->boolVal);
2746 FIXME(
"Unhandled oid %08lx\n", oid);
2747 hr = MIME_E_INVALID_OPTION_ID;
2766 LPWEBPAGEOPTIONS pOptions,
2770 FIXME(
"(%p)->(%p, %p, %p, %p)\n", iface, pRootStm, pOptions,
pCallback, ppMoniker);
2799 FIXME(
"(%p)->(%s)\n", iface, pszName);
2808 boolean fCaseSensitive)
2810 FIXME(
"(%p)->(%s, %s, %s, %s)\n", iface, pszName, pszCriteria, fSubString ?
"TRUE" :
"FALSE", fCaseSensitive ?
"TRUE" :
"FALSE");
2817 ENCODINGTYPE ietEncoding,
2823 FINDBODY find_struct;
2825 static char text[] =
"text";
2826 static char plain[] =
"plain";
2827 static char html[] =
"html";
2829 TRACE(
"(%p)->(%ld, %d, %p, %p)\n", iface, dwTxtType, ietEncoding, pStream, phBody);
2831 find_struct.pszPriType =
text;
2836 find_struct.pszSubType = plain;
2839 find_struct.pszSubType = html;
2842 return MIME_E_INVALID_TEXT_TYPE;
2845 hr = IMimeMessage_FindFirst(iface, &find_struct, &hbody);
2848 TRACE(
"not found hr %08lx\n",
hr);
2853 IMimeMessage_BindToObject(iface, hbody, &IID_IMimeBody, (
void**)&mime_body);
2855 IMimeBody_GetData(mime_body, ietEncoding, pStream);
2857 IMimeBody_Release(mime_body);
2864 ENCODINGTYPE ietEncoding,
2869 FIXME(
"(%p)->(%ld, %d, %p, %p, %p)\n", iface, dwTxtType, ietEncoding, hAlternative, pStream, phBody);
2889 FIXME(
"(%p)->(%s, %p, %p)\n", iface, pszFilePath, pstmFile, phBody);
2902 FIXME(
"(%p)->(%s, %s, 0x%lx, %p, %p, %p)\n", iface, pszBase, pszURL,
dwFlags, pstmURL, ppszCIDURL, phBody);
2909 LPHBODY *pprghAttach)
2912 FINDBODY find_struct;
2917 TRACE(
"(%p)->(%p, %p)\n", iface, pcAttach, pprghAttach);
2922 find_struct.pszPriType = find_struct.pszSubType =
NULL;
2923 hr = IMimeMessage_FindFirst(iface, &find_struct, &hbody);
2926 hr = IMimeMessage_IsContentType(iface, hbody,
"multipart",
NULL);
2927 TRACE(
"IsCT rets %08lx %ld\n",
hr, *pcAttach);
2930 if(*pcAttach + 1 >
size)
2935 array[*pcAttach] = hbody;
2938 hr = IMimeMessage_FindNext(iface, &find_struct, &hbody);
2941 *pprghAttach =
array;
2947 IMimeAddressTable **ppTable)
2949 FIXME(
"(%p)->(%p)\n", iface, ppTable);
2955 LPADDRESSPROPS pAddress)
2957 FIXME(
"(%p)->(%p)\n", iface, pAddress);
2965 LPADDRESSLIST
pList)
2967 FIXME(
"(%p)->(%ld, %ld, %p)\n", iface, dwAdrTypes, dwProps,
pList);
2977 FIXME(
"(%p)->(%ld, %d, %p)\n", iface, dwAdrTypes,
format, ppszFormat);
2985 IMimeEnumAddressTypes **ppEnum)
2987 FIXME(
"(%p)->(%ld, %ld, %p)\n", iface, dwAdrTypes, dwProps, ppEnum);
2994 IMimeMessageParts **ppParts)
2996 FIXME(
"(%p)->(%ld, %p)\n", iface, cbMaxPart, ppParts);
3004 FIXME(
"(%p)->(%p)\n", iface, ppMoniker);
3078 FIXME(
"outer unknown not supported yet\n");
3091 This->next_index = 1;
3097 *
obj = &
This->IMimeMessage_iface;
3106 TRACE(
"(%p, %p)\n", pUnkOuter, ppMessage);
3115 FIXME(
"(0x%lx)\n", dwMode);
3125 FIXME(
"(%p)\n", ppStream);
3150 IMimeSecurity_AddRef(iface);
3185 FIXME(
"(%p)->(): stub\n", iface);
3192 FIXME(
"(%p)->(): stub\n", iface);
3198 IMimeMessageTree* pTree,
3201 FIXME(
"(%p)->(%p, %08lx): stub\n", iface, pTree,
dwFlags);
3207 IMimeMessageTree* pTree,
3211 FIXME(
"(%p)->(%p, %p, %08lx): stub\n", iface, pTree, hEncodeRoot,
dwFlags);
3217 IMimeMessageTree* pTree,
3220 FIXME(
"(%p)->(%p, %08lx): stub\n", iface, pTree,
dwFlags);
3226 IMimeMessageTree* pTree,
3230 FIXME(
"(%p)->(%p, %p, %08lx): stub\n", iface, pTree, hDecodeRoot,
dwFlags);
3241 FIXME(
"(%p)->(%p, %08lx, %p, %p): stub\n", iface, hc, dwUsage, pPrev, ppCert);
3247 const PCX509CERT pX509Cert,
3248 const CERTNAMETYPE
cn,
3251 FIXME(
"(%p)->(%p, %08x, %p): stub\n", iface, pX509Cert,
cn,
ppszName);
3261 FIXME(
"(%p)->(%p, %p, %p): stub\n", iface,
hwndParent, pBody, pdwSecType);
3267 const PCX509CERT pX509Cert,
3268 const CERTDATAID dataid,
3271 FIXME(
"(%p)->(%p, %x, %p): stub\n", iface, pX509Cert, dataid,
pValue);
3307 *
obj = &
This->IMimeSecurity_iface;
3320 IMimeAllocator* iface,
3331 IMimeAllocator_AddRef(iface);
3341 IMimeAllocator* iface)
3347 IMimeAllocator* iface)
3353 IMimeAllocator* iface,
3360 IMimeAllocator* iface,
3368 IMimeAllocator* iface,
3375 IMimeAllocator* iface,
3383 IMimeAllocator* iface,
3391 IMimeAllocator* iface)
3398 IMimeAllocator* iface,
3400 LPMIMEPARAMINFO prgParam,
3404 TRACE(
"(%p)->(%ld, %p, %d)\n", iface, cParams, prgParam, fFreeArray);
3406 for(
i = 0;
i < cParams;
i++)
3408 IMimeAllocator_Free(iface, prgParam[
i].pszName);
3409 IMimeAllocator_Free(iface, prgParam[
i].pszData);
3411 if(fFreeArray) IMimeAllocator_Free(iface, prgParam);
3416 IMimeAllocator* iface,
3417 LPADDRESSLIST
pList)
3424 IMimeAllocator* iface,
3425 LPADDRESSPROPS pAddress)
3432 IMimeAllocator* iface,
3443 IMimeAllocator* iface,
3445 LPENUMHEADERROW prgRow,
3453 IMimeAllocator* iface,
3455 LPENUMPROPERTY prgProp,
3463 IMimeAllocator* iface,
3464 THUMBBLOB *pthumbprint)
3472 IMimeAllocator* iface,
3473 LPPROPVARIANT pProp)
3547 IMimePropertySchema_AddRef(iface);
3580 FIXME(
"(%p)->(%s, %lx, %ld, %d, %p) stub\n",
This,
debugstr_a(
name),
flags, rownumber, vtdefault, propid);
3682 WCHAR *display_name, *mhtml_url;
3686 WARN(
"(0x%08x, %p, %p, %s, %p, %p) semi-stub\n",
bindf,
moniker,
binding,
debugstr_guid(
riid),
out, moniker_new);
static INT pivot(list_t &list, INT i, INT j)
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_remove(struct list_entry *entry)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
static void list_add_head(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
#define UlongToHandle(ul)
HRESULT WINAPI PropVariantClear(PROPVARIANT *pvar)
HRESULT WINAPI PropVariantCopy(PROPVARIANT *pvarDest, const PROPVARIANT *pvarSrc)
HRESULT WINAPI CreateStreamOnHGlobal(HGLOBAL hGlobal, BOOL delete_on_release, IStream **stream)
void *WINAPI CoTaskMemAlloc(SIZE_T size)
void *WINAPI CoTaskMemRealloc(void *ptr, SIZE_T size)
void WINAPI CoTaskMemFree(void *ptr)
#define stricmp(_String1, _String2)
static HRESULT WINAPI propschema_GetPropertyName(IMimePropertySchema *iface, DWORD propid, char **name)
static HRESULT WINAPI MimeMessage_LoadOffsetTable(IMimeMessage *iface, IStream *pStream)
HRESULT VirtualStream_create(IUnknown *outer, void **obj)
HRESULT WINAPI MimeGetAddressFormatW(REFIID riid, void *object, DWORD addr_type, ADDRESSFORMAT addr_format, WCHAR **address)
static HRESULT create_body_offset_list(IStream *stm, const char *boundary, struct list *body_offsets)
static HRESULT WINAPI MimeMessage_EnumAddressTypes(IMimeMessage *iface, DWORD dwAdrTypes, DWORD dwProps, IMimeEnumAddressTypes **ppEnum)
static HRESULT WINAPI MimeBody_QueryProp(IMimeBody *iface, LPCSTR pszName, LPCSTR pszCriteria, boolean fSubString, boolean fCaseSensitive)
static HRESULT WINAPI MimeAlloc_FreeThumbprint(IMimeAllocator *iface, THUMBBLOB *pthumbprint)
static HRESULT WINAPI sub_stream_Seek(IStream *iface, LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER *plibNewPosition)
static HRESULT WINAPI MimeMessage_ResolveURL(IMimeMessage *iface, HBODY hRelated, LPCSTR pszBase, LPCSTR pszURL, DWORD dwFlags, LPHBODY phBody)
static void WINAPI MimeAlloc_Free(IMimeAllocator *iface, LPVOID pv)
static HRESULT WINAPI MimeMessage_GetMessageSize(IMimeMessage *iface, ULONG *pcbSize, DWORD dwFlags)
static HRESULT WINAPI MimeBody_CopyTo(IMimeBody *iface, IMimeBody *pBody)
static HRESULT WINAPI MimeBody_IsType(IMimeBody *iface, IMSGBODYTYPE bodytype)
static ULONG WINAPI MimeSecurity_Release(IMimeSecurity *iface)
HRESULT WINAPI MimeOleGetPropertySchema(IMimePropertySchema **schema)
static void init_content_encoding(MimeBody *body, header_t *header)
static HRESULT WINAPI MimeBody_GetTransmitInfo(IMimeBody *iface, LPTRANSMITINFO pTransmitInfo)
static HRESULT MimeBody_set_offsets(MimeBody *body, const BODYOFFSETS *offsets)
static HRESULT WINAPI MimeMessage_GetRootMoniker(IMimeMessage *iface, IMoniker **ppMoniker)
static HRESULT WINAPI MimeMessage_GetMessageSource(IMimeMessage *iface, IStream **ppStream, DWORD dwFlags)
static HRESULT WINAPI MimeMessage_AttachObject(IMimeMessage *iface, REFIID riid, void *pvObject, LPHBODY phBody)
static void unfold_header(char *header, int len)
static HRESULT WINAPI MimeBody_GetDisplayName(IMimeBody *iface, LPSTR *ppszDisplay)
static sub_stream_t * impl_from_IStream(IStream *iface)
static HRESULT WINAPI MimeMessage_InitNew(IMimeMessage *iface)
static HRESULT get_body(MimeMessage *msg, BODYLOCATION location, HBODY pivot, body_t **out)
static HRESULT WINAPI MimeBody_GetData(IMimeBody *iface, ENCODINGTYPE ietEncoding, IStream **ppStream)
static const IUnknownVtbl mime_obj_vtbl
static HRESULT find_prop(MimeBody *body, const char *name, header_t **prop)
static HRESULT WINAPI MimeBody_GetParameters(IMimeBody *iface, LPCSTR pszName, ULONG *pcParams, LPMIMEPARAMINFO *pprgParam)
static HRESULT WINAPI MimeMessage_GetTextBody(IMimeMessage *iface, DWORD dwTxtType, ENCODINGTYPE ietEncoding, IStream **pStream, LPHBODY phBody)
static HRESULT WINAPI propschema_ModifyProperty(IMimePropertySchema *iface, const char *name, DWORD flags, DWORD rownumber, VARTYPE vtdefault)
static const IMimeSecurityVtbl MimeSecurityVtbl
static HRESULT WINAPI MimeBody_GetClassID(IMimeBody *iface, CLSID *pClassID)
static HRESULT WINAPI MimeSecurity_DecodeBody(IMimeSecurity *iface, IMimeMessageTree *pTree, HBODY hDecodeRoot, DWORD dwFlags)
static void free_header(header_t *header)
static HRESULT WINAPI propschema_RegisterAddressType(IMimePropertySchema *iface, const char *name, DWORD *adrtype)
static HRESULT WINAPI MimeMessage_DeleteProp(IMimeMessage *iface, LPCSTR pszName)
static MimeMessage * impl_from_IMimeMessage(IMimeMessage *iface)
static char * unquote_string(const char *str)
static HRESULT WINAPI MimeSecurity_DecodeMessage(IMimeSecurity *iface, IMimeMessageTree *pTree, DWORD dwFlags)
static HRESULT WINAPI MimeBody_GetHandle(IMimeBody *iface, LPHBODY phBody)
static HRESULT WINAPI MimeBody_IsDirty(IMimeBody *iface)
static HRESULT WINAPI MimeBody_GetOption(IMimeBody *iface, const TYPEDID oid, LPPROPVARIANT pValue)
static void count_children(body_t *body, boolean recurse, ULONG *count)
static LPVOID WINAPI MimeAlloc_Alloc(IMimeAllocator *iface, SIZE_T cb)
static HRESULT WINAPI MimeMessage_SetCharset(IMimeMessage *iface, HCHARSET hCharset, CSETAPPLYTYPE applytype)
static HRESULT WINAPI MimeBody_SetDisplayName(IMimeBody *iface, LPCSTR pszDisplay)
static HRESULT WINAPI propschema_QueryInterface(IMimePropertySchema *iface, REFIID riid, void **out)
static HRESULT WINAPI sub_stream_QueryInterface(IStream *iface, REFIID riid, void **ppv)
static void init_content_type(MimeBody *body, header_t *header)
static HRESULT WINAPI MimeSecurity_EncodeMessage(IMimeSecurity *iface, IMimeMessageTree *pTree, DWORD dwFlags)
static HRESULT WINAPI MimeAlloc_FreeEnumPropertyArray(IMimeAllocator *iface, ULONG cProps, LPENUMPROPERTY prgProp, boolean fFreeArray)
static LPVOID WINAPI MimeAlloc_Realloc(IMimeAllocator *iface, LPVOID pv, SIZE_T cb)
static ULONG WINAPI MimeMessage_AddRef(IMimeMessage *iface)
static HRESULT WINAPI mime_obj_QueryInterface(IUnknown *iface, REFIID riid, void **ppv)
static HRESULT decode_base64(IStream *input, IStream **ret_stream)
static void empty_body_list(struct list *list)
static HRESULT find_next(MimeMessage *This, body_t *body, FINDBODY *find, HBODY *out)
static HRESULT WINAPI MimeMessage_GetSender(IMimeMessage *iface, LPADDRESSPROPS pAddress)
static MimeBody * mimebody_create(void)
static void read_value(header_t *header, char **cur)
static HRESULT WINAPI MimeSecurity_EncodeBody(IMimeSecurity *iface, IMimeMessageTree *pTree, HBODY hEncodeRoot, DWORD dwFlags)
static propschema * impl_from_IMimePropertySchema(IMimePropertySchema *iface)
static HRESULT WINAPI MimeMessage_BindToObject(IMimeMessage *iface, const HBODY hBody, REFIID riid, void **ppvObject)
static HRESULT WINAPI MimeMessage_GetAttachments(IMimeMessage *iface, ULONG *pcAttach, LPHBODY *pprghAttach)
static HRESULT WINAPI MimeMessage_SaveOffsetTable(IMimeMessage *iface, IStream *pStream, DWORD dwFlags)
static HRESULT WINAPI MimeBody_SetCharset(IMimeBody *iface, HCHARSET hCharset, CSETAPPLYTYPE applytype)
static void empty_param_list(struct list *list)
static HRESULT WINAPI MimeBody_DeleteProp(IMimeBody *iface, LPCSTR pszName)
static HRESULT WINAPI sub_stream_Revert(IStream *iface)
static HRESULT WINAPI MimeMessage_GetCharset(IMimeMessage *iface, LPHCHARSET phCharset)
static HRESULT WINAPI MimeSecurity_QueryInterface(IMimeSecurity *iface, REFIID riid, void **ppv)
static HRESULT WINAPI MimeMessage_AttachFile(IMimeMessage *iface, LPCSTR pszFilePath, IStream *pstmFile, LPHBODY phBody)
static HRESULT WINAPI propschema_GetPropertyId(IMimePropertySchema *iface, const char *name, DWORD *propid)
static HRESULT parse_headers(MimeBody *body, IStream *stm)
static HRESULT WINAPI MimeMessage_GetBodyProp(IMimeMessage *iface, HBODY hBody, LPCSTR pszName, DWORD dwFlags, LPPROPVARIANT pValue)
static void add_param(header_t *header, const char *p)
static HRESULT WINAPI MimeBody_Save(IMimeBody *iface, IStream *pStm, BOOL fClearDirty)
static void WINAPI MimeAlloc_HeapMinimize(IMimeAllocator *iface)
static HRESULT WINAPI sub_stream_SetSize(IStream *iface, ULARGE_INTEGER libNewSize)
static HRESULT WINAPI MimeBody_GetCurrentEncoding(IMimeBody *iface, ENCODINGTYPE *pietEncoding)
static HRESULT WINAPI MimeBody_GetEstimatedSize(IMimeBody *iface, ENCODINGTYPE ietEncoding, ULONG *pcbSize)
static HRESULT decode_qp(IStream *input, IStream **ret_stream)
static HRESULT WINAPI MimeAlloc_FreeAddressProps(IMimeAllocator *iface, LPADDRESSPROPS pAddress)
static HRESULT WINAPI MimeMessage_GetAddressTable(IMimeMessage *iface, IMimeAddressTable **ppTable)
static HRESULT get_stream_size(IStream *stream, ULARGE_INTEGER *size)
static HRESULT WINAPI MimeMessage_GetProp(IMimeMessage *iface, LPCSTR pszName, DWORD dwFlags, LPPROPVARIANT pValue)
static ULONG WINAPI sub_stream_AddRef(IStream *iface)
HRESULT WINAPI MimeOleObjectFromMoniker(BINDF bindf, IMoniker *moniker, IBindCtx *binding, REFIID riid, void **out, IMoniker **moniker_new)
static HRESULT WINAPI MimeMessage_QueryBodyProp(IMimeMessage *iface, HBODY hBody, LPCSTR pszName, LPCSTR pszCriteria, boolean fSubString, boolean fCaseSensitive)
static const property_t * find_default_prop(const char *name)
static HRESULT WINAPI MimeMessage_GetSizeMax(IMimeMessage *iface, ULARGE_INTEGER *pcbSize)
static void empty_new_prop_list(struct list *list)
static ULONG WINAPI MimeSecurity_AddRef(IMimeSecurity *iface)
static HRESULT WINAPI MimeMessage_SetOption(IMimeMessage *iface, const TYPEDID oid, LPCPROPVARIANT pValue)
static HRESULT WINAPI MimeBody_GetPropInfo(IMimeBody *iface, LPCSTR pszName, LPMIMEPROPINFO pInfo)
static const signed char base64_decode_table[]
static HRESULT WINAPI MimeBody_IsContentType(IMimeBody *iface, LPCSTR pszPriType, LPCSTR pszSubType)
static HRESULT WINAPI MimeSecurity_GetCertData(IMimeSecurity *iface, const PCX509CERT pX509Cert, const CERTDATAID dataid, LPPROPVARIANT pValue)
HRESULT WINAPI MimeOleGetAllocator(IMimeAllocator **alloc)
static void release_data(REFIID riid, void *data)
static HRESULT WINAPI sub_stream_LockRegion(IStream *iface, ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType)
static HRESULT WINAPI MimeBody_EmptyData(IMimeBody *iface)
static HRESULT WINAPI MimeAlloc_FreeParamInfoArray(IMimeAllocator *iface, ULONG cParams, LPMIMEPARAMINFO prgParam, boolean fFreeArray)
static ULONG WINAPI MimeAlloc_Release(IMimeAllocator *iface)
static HRESULT WINAPI MimeMessage_QueryInterface(IMimeMessage *iface, REFIID riid, void **ppv)
static HRESULT WINAPI MimeMessage_IsContentType(IMimeMessage *iface, HBODY hBody, LPCSTR pszPriType, LPCSTR pszSubType)
static struct IStreamVtbl sub_stream_vtbl
static HRESULT WINAPI MimeBody_CopyProps(IMimeBody *iface, ULONG cNames, LPCSTR *prgszName, IMimePropertySet *pPropertySet)
static HRESULT WINAPI MimeMessage_SetBodyProp(IMimeMessage *iface, HBODY hBody, LPCSTR pszName, DWORD dwFlags, LPCPROPVARIANT pValue)
static HRESULT WINAPI MimeMessage_GetBodyOffsets(IMimeMessage *iface, HBODY hBody, LPBODYOFFSETS pOffsets)
#define FIRST_CUSTOM_PROP_ID
static HRESULT WINAPI MimeMessage_DeleteBody(IMimeMessage *iface, HBODY hBody, DWORD dwFlags)
static HRESULT find_body(struct list *list, HBODY hbody, body_t **body)
static HRESULT WINAPI MimeMessage_GetAddressFormat(IMimeMessage *iface, DWORD dwAdrTypes, ADDRESSFORMAT format, LPSTR *ppszFormat)
static HRESULT WINAPI MimeBody_GetCharset(IMimeBody *iface, LPHCHARSET phCharset)
static HRESULT WINAPI MimeMessage_DeleteBodyProp(IMimeMessage *iface, HBODY hBody, LPCSTR pszName)
static HRESULT WINAPI MimeAlloc_PropVariantClear(IMimeAllocator *iface, LPPROPVARIANT pProp)
static HRESULT WINAPI MimeBody_AppendProp(IMimeBody *iface, LPCSTR pszName, DWORD dwFlags, LPPROPVARIANT pValue)
static IMimePropertySchemaVtbl prop_schema_vtbl
static HRESULT WINAPI MimeAlloc_ReleaseObjects(IMimeAllocator *iface, ULONG cObjects, IUnknown **prgpUnknown, boolean fFreeArray)
static HRESULT WINAPI MimeMessage_FindNext(IMimeMessage *iface, FINDBODY *pFindBody, HBODY *phBody)
static ULONG WINAPI mime_obj_Release(IUnknown *iface)
static ULONG WINAPI propschema_Release(IMimePropertySchema *iface)
static HRESULT WINAPI MimeBody_GetProp(IMimeBody *iface, LPCSTR pszName, DWORD dwFlags, LPPROPVARIANT pValue)
HRESULT WINAPI MimeOleCreateVirtualStream(IStream **ppStream)
static HRESULT WINAPI MimeSecurity_CheckInit(IMimeSecurity *iface)
static body_t * new_body_entry(MimeBody *mime_body, DWORD index, body_t *parent)
static HRESULT WINAPI MimeBody_SaveToFile(IMimeBody *iface, ENCODINGTYPE ietEncoding, LPCSTR pszFilePath)
static HRESULT WINAPI sub_stream_Write(IStream *iface, const void *pv, ULONG cb, ULONG *pcbWritten)
static HRESULT WINAPI MimeMessage_SplitMessage(IMimeMessage *iface, ULONG cbMaxPart, IMimeMessageParts **ppParts)
HRESULT MimeAllocator_create(IUnknown *outer, void **obj)
static HRESULT WINAPI propschema_RegisterProperty(IMimePropertySchema *iface, const char *name, DWORD flags, DWORD rownumber, VARTYPE vtdefault, DWORD *propid)
HRESULT WINAPI MimeOleSetCompatMode(DWORD dwMode)
static MimeBody * impl_from_IMimeBody(IMimeBody *iface)
static void empty_header_list(struct list *list)
static HRESULT WINAPI MimeSecurity_GetMessageType(IMimeSecurity *iface, const HWND hwndParent, IMimeBody *pBody, DWORD *pdwSecType)
static HRESULT WINAPI MimeBody_GetSizeMax(IMimeBody *iface, ULARGE_INTEGER *pcbSize)
static ULONG WINAPI mime_obj_AddRef(IUnknown *iface)
static HRESULT WINAPI MimeMessage_CreateWebPage(IMimeMessage *iface, IStream *pRootStm, LPWEBPAGEOPTIONS pOptions, IMimeMessageCallback *pCallback, IMoniker **ppMoniker)
static HRESULT copy_headers_to_buf(IStream *stm, char **ptr)
static HRESULT WINAPI MimeBody_DeleteExcept(IMimeBody *iface, ULONG cNames, LPCSTR *prgszName)
static HRESULT WINAPI MimeBody_GetDataHere(IMimeBody *iface, ENCODINGTYPE ietEncoding, IStream *pStream)
static HRESULT WINAPI MimeMessage_IsBodyType(IMimeMessage *iface, HBODY hBody, IMSGBODYTYPE bodytype)
static HRESULT WINAPI MimeMessage_GetBody(IMimeMessage *iface, BODYLOCATION location, HBODY hPivot, HBODY *phBody)
static HRESULT WINAPI MimeMessage_SetTextBody(IMimeMessage *iface, DWORD dwTxtType, ENCODINGTYPE ietEncoding, HBODY hAlternative, IStream *pStream, LPHBODY phBody)
HRESULT MimeMessage_create(IUnknown *outer, void **obj)
static HRESULT WINAPI sub_stream_CopyTo(IStream *iface, IStream *pstm, ULARGE_INTEGER cb, ULARGE_INTEGER *pcbRead, ULARGE_INTEGER *pcbWritten)
static SIZE_T WINAPI MimeAlloc_GetSize(IMimeAllocator *iface, LPVOID pv)
static HRESULT WINAPI MimeBody_SetPropInfo(IMimeBody *iface, LPCSTR pszName, LPCMIMEPROPINFO pInfo)
static HRESULT WINAPI MimeMessage_Save(IMimeMessage *iface, IStream *pStm, BOOL fClearDirty)
static HRESULT WINAPI MimeMessage_ToMultipart(IMimeMessage *iface, HBODY hBody, LPCSTR pszSubType, LPHBODY phMultipart)
static HRESULT WINAPI MimeMessage_SaveBody(IMimeMessage *iface, HBODY hBody, DWORD dwFlags, IStream *pStream)
static HRESULT WINAPI MimeBody_SetOption(IMimeBody *iface, const TYPEDID oid, LPCPROPVARIANT pValue)
static HRESULT WINAPI MimeMessage_IsDirty(IMimeMessage *iface)
static HRESULT WINAPI sub_stream_Clone(IStream *iface, IStream **ppstm)
static const IMimeMessageVtbl MimeMessageVtbl
static void split_params(header_t *header, char *value)
static HRESULT WINAPI MimeBody_QueryInterface(IMimeBody *iface, REFIID riid, void **ppvObject)
static header_t * read_prop(MimeBody *body, char **ptr)
static HRESULT WINAPI MimeMessage_GetOption(IMimeMessage *iface, const TYPEDID oid, LPPROPVARIANT pValue)
static HRESULT WINAPI MimeMessage_SetProp(IMimeMessage *iface, LPCSTR pszName, DWORD dwFlags, LPCPROPVARIANT pValue)
static ULONG WINAPI propschema_AddRef(IMimePropertySchema *iface)
static HRESULT WINAPI MimeMessage_FindFirst(IMimeMessage *iface, FINDBODY *pFindBody, HBODY *phBody)
HRESULT MimeSecurity_create(IUnknown *outer, void **obj)
static HRESULT WINAPI MimeBody_SetCurrentEncoding(IMimeBody *iface, ENCODINGTYPE ietEncoding)
static ULONG WINAPI MimeBody_AddRef(IMimeBody *iface)
static HRESULT WINAPI sub_stream_Read(IStream *iface, void *pv, ULONG cb, ULONG *pcbRead)
static HRESULT WINAPI sub_stream_Stat(IStream *iface, STATSTG *pstatstg, DWORD grfStatFlag)
static IMimeBodyVtbl body_vtbl
static HRESULT WINAPI MimeSecurity_GetCertificateName(IMimeSecurity *iface, const PCX509CERT pX509Cert, const CERTNAMETYPE cn, LPSTR *ppszName)
HRESULT WINAPI MimeOleCreateSecurity(IMimeSecurity **ppSecurity)
static HRESULT WINAPI MimeMessage_Load(IMimeMessage *iface, IStream *pStm)
HRESULT WINAPI MimeOleCreateMessage(IUnknown *pUnkOuter, IMimeMessage **ppMessage)
static HRESULT WINAPI MimeMessage_AttachURL(IMimeMessage *iface, LPCSTR pszBase, LPCSTR pszURL, DWORD dwFlags, IStream *pstmURL, LPSTR *ppszCIDURL, LPHBODY phBody)
static ULONG WINAPI sub_stream_Release(IStream *iface)
static body_t * create_sub_body(MimeMessage *msg, IStream *pStm, BODYOFFSETS *offset, body_t *parent)
static const property_t default_props[]
static ULONG WINAPI MimeAlloc_AddRef(IMimeAllocator *iface)
HRESULT MimeBody_create(IUnknown *outer, void **ppv)
static MimeSecurity * impl_from_IMimeSecurity(IMimeSecurity *iface)
static HRESULT WINAPI MimeBody_Clone(IMimeBody *iface, IMimePropertySet **ppPropertySet)
static HRESULT WINAPI MimeMessage_GetClassID(IMimeMessage *iface, CLSID *pClassID)
static HRESULT WINAPI MimeMessage_HandsOffStorage(IMimeMessage *iface)
static HRESULT WINAPI MimeBody_BindToObject(IMimeBody *iface, REFIID riid, void **ppvObject)
static HRESULT WINAPI sub_stream_UnlockRegion(IStream *iface, ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType)
static HRESULT WINAPI MimeSecurity_InitNew(IMimeSecurity *iface)
static IMimeAllocatorVtbl mime_alloc_vtbl
static HRESULT WINAPI MimeAlloc_FreeEnumHeaderRowArray(IMimeAllocator *iface, ULONG cRows, LPENUMHEADERROW prgRow, boolean fFreeArray)
static HRESULT WINAPI MimeMessage_GetAddressTypes(IMimeMessage *iface, DWORD dwAdrTypes, DWORD dwProps, LPADDRESSLIST pList)
static IMimeAllocator mime_allocator
static HRESULT WINAPI MimeBody_EnumProps(IMimeBody *iface, DWORD dwFlags, IMimeEnumProperties **ppEnum)
static HRESULT WINAPI MimeMessage_CountBodies(IMimeMessage *iface, HBODY hParent, boolean fRecurse, ULONG *pcBodies)
static ULONG WINAPI MimeBody_Release(IMimeBody *iface)
static HRESULT WINAPI MimeMessage_InsertBody(IMimeMessage *iface, BODYLOCATION location, HBODY hPivot, LPHBODY phBody)
static HRESULT WINAPI MimeMessage_MoveBody(IMimeMessage *iface, HBODY hBody, BODYLOCATION location)
static HRESULT WINAPI MimeMessage_QueryProp(IMimeMessage *iface, LPCSTR pszName, LPCSTR pszCriteria, boolean fSubString, boolean fCaseSensitive)
static HRESULT WINAPI MimeBody_MoveProps(IMimeBody *iface, ULONG cNames, LPCSTR *prgszName, IMimePropertySet *pPropertySet)
static HRESULT WINAPI MimeBody_Load(IMimeBody *iface, IStream *pStm)
static int WINAPI MimeAlloc_DidAlloc(IMimeAllocator *iface, LPVOID pv)
static HRESULT WINAPI MimeMessage_GetFlags(IMimeMessage *iface, DWORD *pdwFlags)
static HRESULT WINAPI MimeBody_GetOffsets(IMimeBody *iface, LPBODYOFFSETS pOffsets)
static HRESULT WINAPI MimeMessage_Commit(IMimeMessage *iface, DWORD dwFlags)
static HRESULT create_sub_stream(IStream *stream, ULARGE_INTEGER start, ULARGE_INTEGER length, IStream **out)
static HRESULT WINAPI MimeBody_SetProp(IMimeBody *iface, LPCSTR pszName, DWORD dwFlags, LPCPROPVARIANT pValue)
static HRESULT WINAPI sub_stream_Commit(IStream *iface, DWORD grfCommitFlags)
static HRESULT WINAPI MimeAlloc_FreeAddressList(IMimeAllocator *iface, LPADDRESSLIST pList)
static HRESULT WINAPI MimeSecurity_EnumCertificates(IMimeSecurity *iface, HCAPICERTSTORE hc, DWORD dwUsage, PCX509CERT pPrev, PCX509CERT *ppCert)
static ULONG WINAPI MimeMessage_Release(IMimeMessage *iface)
static HRESULT WINAPI MimeBody_SetData(IMimeBody *iface, ENCODINGTYPE ietEncoding, LPCSTR pszPriType, LPCSTR pszSubType, REFIID riid, LPVOID pvObject)
static HRESULT WINAPI MimeAlloc_QueryInterface(IMimeAllocator *iface, REFIID riid, void **obj)
static HRESULT WINAPI MimeBody_InitNew(IMimeBody *iface)
int WINAPI lstrcmpiA(LPCSTR str1, LPCSTR str2)
_ACRTIMP int __cdecl memcmp(const void *, const void *, size_t)
_ACRTIMP char *__cdecl strchr(const char *, int)
_ACRTIMP size_t __cdecl strlen(const char *)
_ACRTIMP char *__cdecl strstr(const char *, const char *)
static char * strdup(const char *buf)
HRESULT WINAPI PropVariantChangeType(PROPVARIANT *ppropvarDest, REFPROPVARIANT propvarSrc, PROPVAR_CHANGE_FLAGS flags, VARTYPE vt)
static const FxOffsetAndName offsets[]
FxPnpStateCallbackInfo * pCallback
GLuint GLuint GLsizei count
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLenum GLsizei GLuint GLint * bytesWritten
GLenum const GLfloat * params
GLenum GLuint GLenum GLsizei const GLchar * buf
GLuint GLsizei GLsizei * length
GLenum GLenum GLenum input
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
@ PID_HDR_DISP_NOTIFICATION_TO
#define memcpy(s1, s2, n)
#define memmove(s1, s2, n)
static RPC_BINDING_HANDLE binding
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
const GUID IID_IPersistStreamInit
#define IsEqualGUID(rguid1, rguid2)
#define IsEqualIID(riid1, riid2)
static unsigned __int64 next
__WINE_SERVER_LIST_INLINE unsigned int list_count(const struct list *list)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
__WINE_SERVER_LIST_INLINE struct list * list_prev(const struct list *list, const struct list *elem)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
__WINE_SERVER_LIST_INLINE struct list * list_next(const struct list *list, const struct list *elem)
__WINE_SERVER_LIST_INLINE struct list * list_tail(const struct list *list)
static const void * body(MD5_CTX *ctx, const void *data, unsigned long size)
IMimeBody IMimeBody_iface
IMimeMessage IMimeMessage_iface
IMimeSecurity IMimeSecurity_iface
IMimePropertySchema IMimePropertySchema_iface
#define CONTAINING_RECORD(address, type, field)
HRESULT WINAPI CreateURLMoniker(IMoniker *pmkContext, LPCWSTR szURL, IMoniker **ppmk)
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
#define CLASS_E_NOAGGREGATION
#define STG_E_INVALIDFUNCTION