atom.cpp
来自「Windows 图形编程 书籍」· C++ 代码 · 共 65 行
CPP
65 行
//-----------------------------------------------------------------------------------//
// Windows Graphics Programming: Win32 GDI and DirectDraw //
// ISBN 0-13-086985-6 //
// //
// Written by Yuan, Feng www.fengyuan.com //
// Copyright (c) 2000 by Hewlett-Packard Company www.hp.com //
// Published by Prentice Hall PTR, Prentice-Hall, Inc. www.phptr.com //
// //
// FileName : atom.cpp //
// Description: KAtomTable class //
// Version : 1.00.000, May 31, 2000 //
//-----------------------------------------------------------------------------------//
#define NOCRYPT
#include <windows.h>
#include <string.h>
#include <assert.h>
#include "Decoder.h"
#include "atom.h"
KAtomTable::KAtomTable(void)
{
m_bufpos = 2; // empty name is of offset 0
m_buffer[0] = 0;
m_buffer[1] = 0;
m_names = 1;
m_name[0] = m_buffer;
}
ATOM KAtomTable::AddAtom(const char *name)
{
// check for null or empty name, return 0 as index
if ( (name==NULL) || (name[0]==0) )
return (ATOM) 0;
int len = strlen(name);
// search for it
for (int i=1; i<m_names; i++)
if ( stricmp(name, m_name[i])==0 )
return (ATOM) i;
if ( m_bufpos+len >= MAX_BUFFER )
{
assert(false);
return (ATOM) 0;
}
m_name[m_names] = m_buffer + m_bufpos;
strcpy(m_buffer + m_bufpos, name);
m_bufpos += len;
m_buffer[m_bufpos++] = 0;
return (ATOM) (m_names++);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?