Windows Mobile POOM API, Fehler in pimstore.h
In der Datei pimstore.h wird im Windows Mobile SDK (Version 5 – 6.5) die COM-API definiert, welche zum Ansprechen des Pocket Outlook Objektmodells (POOM) verwendet wird.
Seit Windows Mobile Version 5 gibt es endlich auch eine IItem Klasse, mit welcher man auf die generischen Properties eines PIM-Items zugreifen kann.
Leider fehlt die Deklaration des Objekts für das C-only Interface, sodass man als C-Programmierer gezwungen ist, sich selber seine Interface-Definition zu schreiben.
Ich hab mir mal die Mühe gemacht, das Interface händisch zu deklarieren. Ich hoffe, es kann wer brauchen:
#if !defined(__cplusplus)
DEFINE_GUID(IID_IItem, 0xfb8998d0, 0x38f0, 0x4d12, 0xac, 0x56, 0x4e, 0xc8, 0xfc, 0xe9, 0xf3, 0xd5);
typedef struct IItemVtbl
{
BEGIN_INTERFACE
// IUnknown
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
IItem __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
IItem __RPC_FAR * This);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
IItem __RPC_FAR * This);
// No IDispatch, inherits directly from IUnknown
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetProps )(
IItem __RPC_FAR * This,
const CEPROPID* rgPropID,
ULONG ulFlags,
WORD cProps,
CEPROPVAL** prgVals,
ULONG *pcbBuffer,
HANDLE hHeap);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetProps )(
IItem __RPC_FAR * This,
ULONG ulFlags,
WORD cProps,
CEPROPVAL* rgVals
);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Save )(
IItem __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Delete )(
IItem __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Display )(
IItem __RPC_FAR * This,
HWND hwndParent);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Edit )(
IItem __RPC_FAR * This,
HWND hwndParent);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Copy )(
IItem __RPC_FAR * This,
/* [retval][out] */ IItem __RPC_FAR *__RPC_FAR *ppolCopy);
/* [propget] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Oid )(
IItem __RPC_FAR * This,
/* [retval][out] */ long __RPC_FAR *poid);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *OpenProperty )(
IItem __RPC_FAR * This,
CEPROPID propID,
DWORD dwMode,
IStream **ppStream);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_DefaultItemType )(
IItem __RPC_FAR * This,
int *polItem);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Application )(
IItem __RPC_FAR * This,
IPOutlookApp **ppolApp);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Parent )(
IItem __RPC_FAR * This,
IFolder **ppIFolder);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *AddCategory )(
IItem __RPC_FAR * This,
LPCWSTR pszwCategory);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *RemoveCategory )(
IItem __RPC_FAR * This,
LPCWSTR pszwCategory);
END_INTERFACE
} IItemVtbl;
interface IItem
{
CONST_VTBL struct IItemVtbl __RPC_FAR *lpVtbl;
};
#endif