pocket pc - msxml 
Author Message
 pocket pc - msxml

Hi,

i am trying to load an xml file ( from local machine) in a
dialog based application in pocket pc. the load() of dom
document fails. any one can help me how to solve this
problem.

Thanks,
Niranjan



Wed, 22 Dec 2004 17:17:42 GMT  
 pocket pc - msxml
Could you be more specific, i.e. some code sample of what
you are doing?

The loading can fail for many a reasons.

Quote:
>-----Original Message-----
>Hi,

>i am trying to load an xml file ( from local machine) in
a
>dialog based application in pocket pc. the load() of dom
>document fails. any one can help me how to solve this
>problem.

>Thanks,
>Niranjan

>.



Thu, 23 Dec 2004 18:28:52 GMT  
 pocket pc - msxml
from one of my samples:-

namespace MSXML
{
#include <msxml.h>

Quote:
}

void _com_issue_error(HRESULT hr)
{
Quote:
}

void _com_issue_errorex(HRESULT hr, IUnknown* pUnkn, REFIID riid)
{

Quote:
}

void CTryXMLDlg::OnGetNodeValue()
{
        MSXML::IXMLDOMDocument          *pXMLDOMDoc                     = NULL, *pXSLDOMDoc = NULL;
        MSXML::IXMLDOMNodeList          *pXMLDOMNodeList        = NULL;
        MSXML::IXMLDOMNode                      *pXMLDOMNode            = NULL;
        MSXML::IXMLDOMParseError        *pParsingErr = NULL;

        VARIANT         vXMLSrc;
        VariantInit(&vXMLSrc);

        HRESULT hr = CoInitializeEx(NULL,COINIT_MULTITHREADED);
        if(!SUCCEEDED(hr))
                return;

        hr = CoCreateInstance (MSXML::CLSID_DOMDocument, NULL,
CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER,
                                                        MSXML::IID_IXMLDOMDocument, (LPVOID *)&pXMLDOMDoc);
        if(!pXMLDOMDoc)
    {
        AfxMessageBox(_T("Failed CoCreateInstance - pXMLDOMDoc"));
//              pXMLDOMDoc->Release();
                return;
    }
        hr = CoCreateInstance (MSXML::CLSID_DOMDocument, NULL,
CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER,
                                                        MSXML::IID_IXMLDOMDocument, (LPVOID *)&pXSLDOMDoc);
        if(!pXSLDOMDoc)
    {
        AfxMessageBox(_T("Failed CoCreateInstance - pXSLDOMDoc"));
//              pXMLDOMDoc->Release();
                return;
    }
        //Set asynchronous mode to FALSE
    pXMLDOMDoc->put_async(VARIANT_FALSE);
        pXSLDOMDoc->put_async(VARIANT_FALSE);

        // Pocket PC workaround:
        // Remove document safety options

        {
                IObjectSafety*  pSafety;
                DWORD                   dwSupported, dwEnabled;

                if ( SUCCEEDED(pXMLDOMDoc->QueryInterface( IID_IObjectSafety,
(void**)&pSafety ) ) )
                {
                        pSafety->GetInterfaceSafetyOptions( MSXML::IID_IXMLDOMDocument,
&dwSupported, &dwEnabled );
                        pSafety->SetInterfaceSafetyOptions( MSXML::IID_IXMLDOMDocument,
dwSupported, 0 );
                        pSafety->Release();
                }
                if ( SUCCEEDED(pXSLDOMDoc->QueryInterface( IID_IObjectSafety,
(void**)&pSafety ) ) )
                {
                        pSafety->GetInterfaceSafetyOptions( MSXML::IID_IXMLDOMDocument,
&dwSupported, &dwEnabled );
                        pSafety->SetInterfaceSafetyOptions( MSXML::IID_IXMLDOMDocument,
dwSupported, 0 );
                        pSafety->Release();
                }
        }

        FileStream* fs = new FileStream;
        if(!(fs->open(_T("\\Ashley.xml"))))
        {
        AfxMessageBox(_T("Failed to load File"));
                pXMLDOMDoc->Release();
                fs->Release();
                return;
        }
        vXMLSrc.punkVal = fs;
        vXMLSrc.vt = VT_UNKNOWN;
        VARIANT_BOOL                            vSuccess;
        hr = pXMLDOMDoc->load(vXMLSrc, &vSuccess);
        fs->Release();
//      if load fails

        FileStream* fsXSL = new FileStream;
        if(!(fsXSL->open(_T("\\Ashley.xsl"))))
        {
        AfxMessageBox(_T("Failed to load File"));
                pXSLDOMDoc->Release();
                fs->Release();
                return;
        }
        vXMLSrc.punkVal = fsXSL;
        vXMLSrc.vt = VT_UNKNOWN;
        hr = pXSLDOMDoc->load(vXMLSrc, &vSuccess);
        fsXSL->Release();

        if(vSuccess==VARIANT_FALSE)
        {
                long line, linePos;
                BSTR reason = NULL;

                pXMLDOMDoc->get_parseError(&pParsingErr);

            pParsingErr->get_line(&line);
                pParsingErr->get_linepos(&linePos);
                pParsingErr->get_reason(&reason);
                pParsingErr->get_errorCode(&hr);
                AfxMessageBox(_T("Load Failed"));
                AfxMessageBox(reason);
        SysFreeString(reason);
                pParsingErr->Release();
                pXMLDOMDoc->Release();
                return;
        }
    else
    {
                BSTR    bstrResult;
                hr = pXMLDOMDoc->transformNode(pXSLDOMDoc, &bstrResult);
                ::OutputDebugString(bstrResult);
                if(FAILED(hr))
                {
                        AfxMessageBox(L"transformNode Node failed");
                }
                else
                        AfxMessageBox(bstrResult);
                pXSLDOMDoc->Release();
                pXMLDOMDoc->Release();
        }

Quote:
}

////////////////////////////////////////////////////////////////////////////
//--------------------------------------------------------------------------
// Copyright (c) 1999-2000  Microsoft Corporation.  All Rights Reserved.
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//--------------------------------------------------------------------------
////////////////////////////////////////////////////////////////////////////

#ifndef _FILESTREAM_HXX
#define _FILESTREAM_HXX

class FileStream : public IStream
{
public:
        FileStream()
        {
        _ulRefs = 1;
        _hFile = NULL;
        _fRead = true;
        }

        ~FileStream()
        {
                ::CloseHandle(_hFile);
        }

    HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void ** ppvObject)
    {
        if (riid == IID_IUnknown)
        {
            *ppvObject = static_cast<IUnknown*>(this);
        }
        else if (riid == IID_IStream)
        {
            *ppvObject = static_cast<IStream*>(this);
        }
        reinterpret_cast<IUnknown*>(*ppvObject)->AddRef();
        return S_OK;
    }

    ULONG STDMETHODCALLTYPE AddRef( void)
    {
        return InterlockedIncrement(&_ulRefs);
    }

    ULONG STDMETHODCALLTYPE Release( void)
    {
        if (InterlockedDecrement(&_ulRefs) == 0)
        {
                        CloseHandle(_hFile);
           delete this;
            return 0;
        }
        return _ulRefs;
    }

    bool open(const WCHAR* name, bool read = true)
    {
        _fRead = read;

        if (read)
        {
                    _hFile = ::CreateFile(
                name,
                            GENERIC_READ,
                            FILE_SHARE_READ,
                            NULL,
                            OPEN_EXISTING,
                            FILE_ATTRIBUTE_NORMAL,
                            NULL);
        }
        else
        {
                    _hFile = ::CreateFile(
                            name,
                            GENERIC_WRITE,
                            FILE_SHARE_READ,
                            NULL,
                            CREATE_ALWAYS,
                            FILE_ATTRIBUTE_NORMAL,
                            NULL);
        }
        return (_hFile == INVALID_HANDLE_VALUE) ? false : true;
    }

    virtual /* [local] */ HRESULT STDMETHODCALLTYPE Read(
        /* [out] */ void __RPC_FAR *pv,
        /* [in] */ ULONG cb,
        /* [out] */ ULONG __RPC_FAR *pcbRead)
        {      
        if (! _fRead) return E_FAIL;

        DWORD len;
                BOOL rc = ReadFile(
                        _hFile, // handle of file to read
                        pv,     // address of buffer that receives data  
                        cb,     // number of bytes to read
                        &len,       // address of number of bytes read
                        NULL    // address of structure for data
                   );
        if (pcbRead)
            *pcbRead = len;
        if (! rc)        // ReadFile returns FALSE if there is an error.
            return E_FAIL;

        return len > 0 ? S_OK : S_FALSE;
        }

    virtual /* [local] */ HRESULT STDMETHODCALLTYPE Write(
        /* [size_is][in] */ const void __RPC_FAR *pv,
        /* [in] */ ULONG cb,
        /* [out] */ ULONG __RPC_FAR *pcbWritten)
        {
        if (_fRead) return E_FAIL;

                BOOL rc = WriteFile(
                        _hFile, // handle of file to write
                        pv,     // address of buffer that contains data  
                        cb,     // number of bytes to write
                        pcbWritten,     // address of number of bytes written
                        NULL    // address of structure for overlapped I/O  
                   );

                return (rc) ? S_OK : E_FAIL;
        }

    virtual /* [local] */ HRESULT STDMETHODCALLTYPE Seek(
        /* [in] */ LARGE_INTEGER dlibMove,
        /* [in] */ DWORD dwOrigin,
        /* [out] */ ULARGE_INTEGER __RPC_FAR *plibNewPosition) { return
E_FAIL; }

    virtual HRESULT STDMETHODCALLTYPE SetSize(
        /* [in] */ ULARGE_INTEGER libNewSize) { return E_FAIL; }

    virtual /* [local] */ HRESULT STDMETHODCALLTYPE CopyTo(
        /* [unique][in] */ IStream __RPC_FAR *pstm,
        /* [in] */ ULARGE_INTEGER cb,
        /* [out] */ ULARGE_INTEGER __RPC_FAR *pcbRead,
        /* [out] */ ULARGE_INTEGER __RPC_FAR *pcbWritten) { return E_FAIL; }

    virtual HRESULT STDMETHODCALLTYPE Commit(
        /* [in] */ DWORD grfCommitFlags) { return E_FAIL; }

    virtual HRESULT STDMETHODCALLTYPE Revert( void) { return E_FAIL; }

    virtual HRESULT STDMETHODCALLTYPE LockRegion(
        /* [in] */ ULARGE_INTEGER libOffset,
        /* [in] */ ULARGE_INTEGER cb,
        /* [in] */ DWORD dwLockType) { return E_FAIL; }

    virtual HRESULT STDMETHODCALLTYPE UnlockRegion(
        /* [in] */ ULARGE_INTEGER libOffset,
        /* [in] */ ULARGE_INTEGER cb,
        /* [in] */ DWORD dwLockType) { return E_FAIL; }

    virtual HRESULT STDMETHODCALLTYPE Stat(
        /* [out] */ STATSTG __RPC_FAR *pstatstg,
        /* [in] */ DWORD grfStatFlag) { return E_FAIL; }

    virtual HRESULT STDMETHODCALLTYPE Clone(
        /* [out] */ IStream __RPC_FAR *__RPC_FAR *ppstm) { return E_FAIL; }

private:
        HANDLE _hFile;
    bool _fRead;
    LONG _ulRefs;

Quote:
};

#endif // _FILESTREAM_HXX

Ashley Antony Elenjickal
Devp  Support - Windows Embedded
Microsoft Corporation

This posting is provided "AS IS" with no warranties, and confers no rights.
--------------------
| Content-Class: urn:content-classes:message


| Subject: pocket pc - msxml
| Date: Sat, 6 Jul 2002 02:17:42 -0700
| Lines: 10

| MIME-Version: 1.0
| Content-Type: text/plain;
|       charset="iso-8859-1"
| Content-Transfer-Encoding: 7bit
| X-Newsreader: Microsoft CDO for Windows 2000
| Thread-Index: AcIkzft043B2+XRyTqqZuMmvEAYDUQ==
| X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4910.0300
| Newsgroups: microsoft.public.windowsce.embedded.vc
| Path: cpmsftngxa08
| Xref: cpmsftngxa08 microsoft.public.windowsce.embedded.vc:14045
| NNTP-Posting-Host: TKMSFTNGXA11 10.201.226.39
| X-Tomcat-NG: microsoft.public.windowsce.embedded.vc
|
| Hi,
|
| i am trying to load an xml file ( from local machine) in a
| dialog based application in pocket pc. the load() of dom
| document fails. any one can help me how to solve this
| problem.
|
| Thanks,
| Niranjan
|
|



Fri, 24 Dec 2004 11:12:17 GMT  
 pocket pc - msxml
Hi Ashley,

Thanks for your reply.
I used your code and also i got the sample from support
site. the load always fails. But I am able to load the xml
without using FileStream. When I use the three pocket pc
workaround statements, FileStream is not needed. the
document is loaded and i am able to access child nodes.
now the problem is , i am not able to save the document. I
used two methods (1 and 2) as given below. Can you kindly
go through and correct me or suggest me what else could be
the problem and how can i overcome this.

Thanks & Regards,
Niranjan

/********** START ***********************/
// loading document without using FileStream
MSXML::IXMLDOMDocument* pDocument;
VARIANT_BOOL     fSuccess(VARIANT_FALSE);

CComVariant      vSource( L"file:\\states.xml" );
HRESULT          hr;
IObjectSafety*   pSafety;
DWORD            dwSupported, dwEnabled;

CoCreateInstance(
MSXML::CLSID_DOMDocument,0,CLSCTX_INPROC_SERVER,MSXML::IID_
IXMLDOMDocument,(void**)&pDocument );

// pocket pc work around
pDocument->QueryInterface( IID_IObjectSafety, (void**)
&pSafety );
pSafety->GetInterfaceSafetyOptions(
MSXML::IID_IXMLDOMDocument, &dwSupported, &dwEnabled );
pSafety->SetInterfaceSafetyOptions(
MSXML::IID_IXMLDOMDocument, dwSupported, 0 );
// end of pocket pc work around

// Load the XML into DOM is successfull.
hr = pDocument->load( vSource, &fSuccess );

// Method 1 to save the xml document with different name
// save the document with new name - This method didn't
work and new.xml was not created
// save return -2147024809 value
CComVariant vDest( L"file:\\new.xml" );
hr = pDocument->save(vDest);

// Method 2 to save the xml document with different xml
document object.
// Create a new DOM with and save pDocument to pDocument1
// at the end, the new.xml file is not updated with
contents of states.xml
CComVariant  vDest( L"file:\\new.xml" );
MSXML::IXMLDOMDocument* pDocument1;
CoCreateInstance(
MSXML::CLSID_DOMDocument,0,CLSCTX_INPROC_SERVER,MSXML::IID_
IXMLDOMDocument,(void**)&pDocument1 );

// pocket pc work around
pDocument1->QueryInterface( IID_IObjectSafety, (void**)
&pSafety );
pSafety->GetInterfaceSafetyOptions(
MSXML::IID_IXMLDOMDocument, &dwSupported, &dwEnabled );
pSafety->SetInterfaceSafetyOptions(
MSXML::IID_IXMLDOMDocument, dwSupported, 0 );
// end of pocket pc work around

// This load() returns 1                
hr = pDocument1->load( vDest, &fSuccess );
if ( FAILED(hr) ){
        MessageBox(_T("error"));

Quote:
}

CComVariant  dest(pDocument1);
// the following save() returns 0
hr = pDocument->save(dest);
if ( FAILED(hr) ){
        MessageBox(_T("error"));
Quote:
}

pDocument1->Release();

/**********END************************************/

Quote:
>-----Original Message-----
>from one of my samples:-

>namespace MSXML
>{
>#include <msxml.h>
>}

>void _com_issue_error(HRESULT hr)
>{
>}
>void _com_issue_errorex(HRESULT hr, IUnknown* pUnkn,
REFIID riid)
>{
>}

>void CTryXMLDlg::OnGetNodeValue()
>{
>    MSXML::IXMLDOMDocument          *pXMLDOMDoc    

                = NULL, *pXSLDOMDoc = NULL;
Quote:
>    MSXML::IXMLDOMNodeList          *pXMLDOMNodeList
        = NULL;
>    MSXML::IXMLDOMNode              

        *pXMLDOMNode            = NULL;
Quote:
>    MSXML::IXMLDOMParseError        *pParsingErr =
NULL;

>    VARIANT         vXMLSrc;
>    VariantInit(&vXMLSrc);

>    HRESULT hr = CoInitializeEx

(NULL,COINIT_MULTITHREADED);
Quote:
>    if(!SUCCEEDED(hr))
>            return;

>    hr = CoCreateInstance (MSXML::CLSID_DOMDocument,
NULL,
>CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER,

        MSXML::IID_IXMLDOMDocument, (LPVOID *)&pXMLDOMDoc);
Quote:
>    if(!pXMLDOMDoc)
>    {
>        AfxMessageBox(_T("Failed CoCreateInstance -
pXMLDOMDoc"));
>//          pXMLDOMDoc->Release();
>            return;
>    }
>    hr = CoCreateInstance (MSXML::CLSID_DOMDocument,
NULL,
>CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER,

        MSXML::IID_IXMLDOMDocument, (LPVOID *)&pXSLDOMDoc);

- Show quoted text -

Quote:
>    if(!pXSLDOMDoc)
>    {
>        AfxMessageBox(_T("Failed CoCreateInstance -
pXSLDOMDoc"));
>//          pXMLDOMDoc->Release();
>            return;
>    }
>    //Set asynchronous mode to FALSE
>    pXMLDOMDoc->put_async(VARIANT_FALSE);
>    pXSLDOMDoc->put_async(VARIANT_FALSE);

>    // Pocket PC workaround:
>    // Remove document safety options

>    {
>            IObjectSafety*  pSafety;
>            DWORD                   dwSupported,
dwEnabled;

>            if ( SUCCEEDED(pXMLDOMDoc->QueryInterface(
IID_IObjectSafety,
>(void**)&pSafety ) ) )
>            {
>                    pSafety->GetInterfaceSafetyOptions

( MSXML::IID_IXMLDOMDocument,
Quote:
>&dwSupported, &dwEnabled );
>                    pSafety->SetInterfaceSafetyOptions

( MSXML::IID_IXMLDOMDocument,
Quote:
>dwSupported, 0 );
>                    pSafety->Release();
>            }
>            if ( SUCCEEDED(pXSLDOMDoc->QueryInterface(
IID_IObjectSafety,
>(void**)&pSafety ) ) )
>            {
>                    pSafety->GetInterfaceSafetyOptions

( MSXML::IID_IXMLDOMDocument,
Quote:
>&dwSupported, &dwEnabled );
>                    pSafety->SetInterfaceSafetyOptions

( MSXML::IID_IXMLDOMDocument,

- Show quoted text -

Quote:
>dwSupported, 0 );
>                    pSafety->Release();
>            }
>    }

>    FileStream* fs = new FileStream;
>    if(!(fs->open(_T("\\Ashley.xml"))))
>    {
>        AfxMessageBox(_T("Failed to load File"));
>            pXMLDOMDoc->Release();
>            fs->Release();
>            return;
>    }
>    vXMLSrc.punkVal = fs;
>    vXMLSrc.vt = VT_UNKNOWN;
>    VARIANT_BOOL                            vSuccess;
>    hr = pXMLDOMDoc->load(vXMLSrc, &vSuccess);
>    fs->Release();
>//  if load fails

>    FileStream* fsXSL = new FileStream;
>    if(!(fsXSL->open(_T("\\Ashley.xsl"))))
>    {
>        AfxMessageBox(_T("Failed to load File"));
>            pXSLDOMDoc->Release();
>            fs->Release();
>            return;
>    }
>    vXMLSrc.punkVal = fsXSL;
>    vXMLSrc.vt = VT_UNKNOWN;
>    hr = pXSLDOMDoc->load(vXMLSrc, &vSuccess);
>    fsXSL->Release();

>    if(vSuccess==VARIANT_FALSE)
>    {
>            long line, linePos;
>            BSTR reason = NULL;

>            pXMLDOMDoc->get_parseError(&pParsingErr);

>        pParsingErr->get_line(&line);
>            pParsingErr->get_linepos(&linePos);
>            pParsingErr->get_reason(&reason);
>            pParsingErr->get_errorCode(&hr);
>            AfxMessageBox(_T("Load Failed"));
>            AfxMessageBox(reason);
>        SysFreeString(reason);
>            pParsingErr->Release();
>            pXMLDOMDoc->Release();
>            return;
>    }
>    else
>    {
>            BSTR    bstrResult;
>            hr = pXMLDOMDoc->transformNode(pXSLDOMDoc,
&bstrResult);
>            ::OutputDebugString(bstrResult);
>            if(FAILED(hr))
>            {
>                    AfxMessageBox(L"transformNode Node
failed");
>            }
>            else
>                    AfxMessageBox(bstrResu{ w E -c
0d?'  Y lt);
>            pXSLDOMDoc->Release();
>            pXMLDOMDoc->Release();
>    }

>}

>//////////////////////////////////////////////////////////
//////////////////
>//--------------------------------------------------------
------------------
>// Copyright (c) 1999-2000  Microsoft Corporation.  All
Rights Reserved.
>//
>// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT
WARRANTY OF
>// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT
NOT LIMITED TO
>// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR
FITNESS FOR A
>// PARTICULAR PURPOSE.
>//--------------------------------------------------------
------------------
>//////////////////////////////////////////////////////////
//////////////////

>#ifndef _FILESTREAM_HXX
>#define _FILESTREAM_HXX

>class FileStream : public IStream
>{
>public:
>    FileStream()
>    {
>        _ulRefs = 1;
>        _hFile = NULL;
>        _fRead = true;
>    }

>    ~FileStream()
>    {
>            ::CloseHandle(_hFile);
>    }

>    HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid,
void ** ppvObject)
>    {
>        if (riid == IID_IUnknown)
>        {
>            *ppvObject = static_cast<IUnknown*>(this);
>        }
>        else if (riid == IID_IStream)
>        {
>            *ppvObject = static_cast<IStream*>(this);
>        }
>        reinterpret_cast<IUnknown*>(*ppvObject)->AddRef();
>        return S_OK;
>    }

>    ULONG STDMETHODCALLTYPE AddRef( void)
>    {
>        return InterlockedIncrement(&_ulRefs);
>    }

>    ULONG STDMETHODCALLTYPE Release( void)
>    {
>        if (InterlockedDecrement(&_ulRefs) == 0)
>        {
>                    CloseHandle(_hFile);
>           delete this;
>            return 0;
>        }
>        return _ulRefs;
>    }

>    bool open(const WCHAR* name, bool read = true)
>    {
>        _fRead = read;

>        if (read)
>        {
>                _hFile = ::CreateFile(
>                name,
>                        GENERIC_READ,
>                        FILE_SHARE_READ,
>                        NULL,
>                        OPEN_EXISTING,
>                        FILE_ATTRIBUTE_NORMAL,
>                        NULL);
>        }
>        else
>        {
>                _hFile = ::CreateFile(
>                        name,
>                        GENERIC_WRITE,
>                        FILE_SHARE_READ,
>                        NULL,
>                        CREATE_ALWAYS,
>                        FILE_ATTRIBUTE_NORMAL,
>                        NULL);
>        }
>        return (_hFile == INVALID_HANDLE_VALUE) ? false :
true;
>    }

>    virtual /* [local] */ HRESULT STDMETHODCALLTYPE Read(
>        /* [out] */ void __RPC_FAR *pv,
>        /* [in] */ ULONG cb,
>        /* [out] */ ULONG __RPC_FAR *pcbRead)
>    {      
>        if (! _fRead) return E_FAIL;

>        DWORD len;
>            BOOL rc = ReadFile(
>                    _hFile, // handle of file to read
>                    pv,     // address of buffer that
receives data  
>                    cb,     // number of bytes to read
>                    &len,       // address of number of
bytes read
>                    NULL    // address of structure
for data
>               );
>        if (pcbRead)
>            *pcbRead = len;
>        if (! rc)        // ReadFile returns FALSE if
there is an error.
>            return E_FAIL;

>        return len > 0 ? S_OK : S_FALSE;
>    }

>    virtual /* [local] */ HRESULT STDMETHODCALLTYPE Write
(
>        /* [size_is][in] */ const void __RPC_FAR *pv,
>        /* [in] */ ULONG cb,
>        /* [out] */ ULONG __RPC_FAR *pcbWritten)
>    {



Sat, 25 Dec 2004 21:41:14 GMT  
 
 [ 4 post ] 

 Relevant Pages 

1. pocket pc msxml save() problem

2. Pocket PC / Pocket PC 2002: CDialog::m_bFullScreen

3. New article at Pocket PC Developer Network - Testing programs on Pocket PC

4. Pocket PC / Pocket PC 2002: CDialog::m_bFullScreen

5. what differencies are between Pocket PC SDK an Pocket PC 2002 SDK

6. need help on getting desktop PC to communicate w/ Pocket PC

7. Difference between PalmSize PC et Pocket PC

8. Serial Communication between Pocket PC and Visual C PC Application

9. make a communcation btw pc and pocket pc

10. Preprocessor question Pocket PC vs. Pocket PC 2002?

11. pocket pc app

12. Pocket PC access to SQL Server 2000

 

 
Powered by phpBB® Forum Software