Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

59 lines
1.4 KiB

//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1998 - 1999
//
// File: dpaddressobj.cpp
//
//--------------------------------------------------------------------------
#include "stdafx.h"
#include "Direct.h"
#include "dms.h"
#include "DPAddressObj.h"
CONSTRUCTOR_STRUCT(_dxj_DPAddress, {init();})
DESTRUCTOR_STRUCT(_dxj_DPAddress, {cleanUp();})
void C_dxj_DPAddressObject::init() {
m_pAddress=NULL;
m_size=0;
}
void C_dxj_DPAddressObject::cleanUp() {
//DPF(DPF_VERRBOSE,"_dxj_DPAddress object being destroyed");
if (m_pAddress) free (m_pAddress);
m_size=0;
}
HRESULT C_dxj_DPAddressObject::setAddress(
/* [in] */ long pAddress,
/* [in] */ long length) {
if (m_pAddress) free (m_pAddress);
m_pAddress=NULL;
m_pAddress=malloc((DWORD)length);
if (m_pAddress==NULL) return E_OUTOFMEMORY;
if (pAddress==NULL) return E_FAIL;
memcpy((void*)m_pAddress,(void*)pAddress,length);
m_size=(DWORD)length;
return S_OK;
}
HRESULT C_dxj_DPAddressObject::getAddress(
/* [out] */ long *pAddress,
/* [out] */ long *length) {
*pAddress=(long)PtrToLong(m_pAddress); //bugbug SUNDOWN- sundown wont be able to do this
//will need to implement new non VB interface to get at this functionality internally
*length=(long)m_size;
return S_OK;
}