Posts: 6073 Reputation: 57
39 / /
Joined: Oct 2003
RE: How to make an emoticon pack?
Emoticon packs are just CAB files with a manifest file inside (like a Java Archive is a ZIP file with a manifest inside). I'm afraid I can't help you with the manifest file, but there should be some info around the 'Net somewhere.
Posts: 6073 Reputation: 57
39 / /
Joined: Oct 2003
RE: How to make an emoticon pack?
You need to write a small app that uses the ContentInstaller API in messenger. I'll post you the API info later if you like (I don't have PE Explorer at work, but I do at home).
Here it is:
Dispatch DMessengerContentEvents;
GUID = {51A01E38-7505-401B-ABC9-F460E1499728};
function OnContentInstalled(lhrResult: I4); stdcall;
//Single Click Download Interface
Dispatch IMessengerContent;
GUID = {83B2A407-22B9-4842-97C6-DE30EC6DAC3E};
function QueryInterface(riid: ^GUID; out ppvObj: ^^VOID); stdcall;
function AddRef: UI4; stdcall;
function Release: UI4; stdcall;
function GetTypeInfoCount(out pctinfo: ^UINT); stdcall;
function GetTypeInfo(itinfo: UINT; lcid: UI4; out pptinfo: ^^VOID); stdcall;
function GetIDsOfNames(riid: ^GUID; rgszNames: ^^I1; cNames: UINT; lcid: UI4; out rgdispid: ^I4); stdcall;
function Invoke(dispidMember: I4; riid: ^GUID; lcid: UI4; wFlags: UI2; pdispparams: ^DISPPARAMS; out pvarResult: ^Variant; out pexcepinfo: ^EXCEPINFO; out puArgErr: ^UINT); stdcall;
//Download content to the client from a CAB file.
function InstallContent(bstrURL: BSTR); stdcall;
//Download content to the client from a Merchant CAB file.
function InstallIndirectContent(bstrURL: BSTR); stdcall;
//Single Click Download Interface v2
Dispatch IMessengerContent2;
GUID = {647C4DDA-B572-4EEF-871A-7ED254E680F7};
function QueryInterface(riid: ^GUID; out ppvObj: ^^VOID); stdcall;
function AddRef: UI4; stdcall;
function Release: UI4; stdcall;
function GetTypeInfoCount(out pctinfo: ^UINT); stdcall;
function GetTypeInfo(itinfo: UINT; lcid: UI4; out pptinfo: ^^VOID); stdcall;
function GetIDsOfNames(riid: ^GUID; rgszNames: ^^I1; cNames: UINT; lcid: UI4; out rgdispid: ^I4); stdcall;
function Invoke(dispidMember: I4; riid: ^GUID; lcid: UI4; wFlags: UI2; pdispparams: ^DISPPARAMS; out pvarResult: ^Variant; out pexcepinfo: ^EXCEPINFO; out puArgErr: ^UINT); stdcall;
//Download content to the client from a CAB file.
function InstallContent(bstrURL: BSTR); stdcall;
//Download content to the client from a Merchant CAB file.
function InstallIndirectContent(bstrURL: BSTR); stdcall;
//Messenger version
property-get Version: BSTR; stdcall;
//Single Click Download Interface v3
Dispatch IMessengerContent3;
GUID = {DE72ACCE-9D1D-4484-8A5E-5C5B517153CC};
function QueryInterface(riid: ^GUID; out ppvObj: ^^VOID); stdcall;
function AddRef: UI4; stdcall;
function Release: UI4; stdcall;
function GetTypeInfoCount(out pctinfo: ^UINT); stdcall;
function GetTypeInfo(itinfo: UINT; lcid: UI4; out pptinfo: ^^VOID); stdcall;
function GetIDsOfNames(riid: ^GUID; rgszNames: ^^I1; cNames: UINT; lcid: UI4; out rgdispid: ^I4); stdcall;
function Invoke(dispidMember: I4; riid: ^GUID; lcid: UI4; wFlags: UI2; pdispparams: ^DISPPARAMS; out pvarResult: ^Variant; out pexcepinfo: ^EXCEPINFO; out puArgErr: ^UINT); stdcall;
//Download content to the client from a CAB file.
function InstallContent(bstrURL: BSTR); stdcall;
//Download content to the client from a Merchant CAB file.
function InstallIndirectContent(bstrURL: BSTR); stdcall;
//Messenger version
property-get Version: BSTR; stdcall;
//Install content to the client from XML data.
function InstallMobileContent(bstrXML: BSTR); stdcall;