Изменение строки в ресурсе exe

Как мне изменитьbuffer в следующем коде затем сохранить изменения в ресурсе исполняемого файла? Я'ищу что то подобное.SetString(handle,index,buffer,size)

var
  hExe : Cardinal;
  buffer : array [0..4097] of ansichar;
begin
  hExe:=LoadLibraryEx(PAnsiChar(Edit2.Text),0,LOAD_LIBRARY_AS_DATAFILE);
  LoadString(hExe,65300,buffer,SizeOf(buffer));
  ShowMessage(buffer);
  //need to modify buffer here then I'll unload the resources..
end;

Обновить: Вот'моя попытка на UpdateResource

var
  hEXE: DWORD;
  pData: PAnsiChar;
begin
  pData := PAnsiChar(Edit1.Text);
  hEXE := BeginUpdateResource(pchar(edit2.text), FALSE);
  if hEXE  0 then
  begin
    UpdateResource(hEXE, RT_string, MAKEINTRESOURCE(4082), LANG_NEUTRAL,
      @pData, Length(pData)); //if i change 4082 to 65300 it creates another key like 4082
    EndUpdateResource(hEXE, FALSE);
  end;

Этот код испортил весь контент 4082. Проблема в том, что элемент с именем 4082 в RT_STRING является группой строк. Когда я открываю исполняемый файл в редакторе ресурсов, нажимаю строку с таблицей, затем 4082 результат:

STRINGTABLE
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
{
65296,  "Unicode"
65297,  "Big Endian Unicode"
65298,  "UTF-8"
65299,  "UTF-7"
65300,  "ABCDE12345"
}

Поэтому мне либо нужно проанализировать группу строк, либо мне нужен API для установки строки модификации с индексом 65300 в группе. Есть идеи? Я

Ответы на вопрос(4)

Ваш ответ на вопрос