코딩하는 나귀

function TBand.TranslateAcceleratorIO(var lpMsg: TMsg): HResult;
// Passes keyboard accelerators to the object.
var
  Disp: IDispatch;
  IOIPAO: IOleInPlaceActiveObject;

begin
  OutputDebugString(PChar(Format('[Band] lpMsg.WParam : %d', [lpMsg.WParam])));
  Result := S_FALSE;

  if (lpMsg.wParam <> VK_TAB) and (lpMsg.wParam <> VK_RETURN) and (lpMsg.wParam <> VK_DELETE) then
  begin
    TranslateMessage(lpMSg);
    DispatchMessage(lpMsg);
    Result := S_OK;
  end else begin
    Disp := FormBand.EmbeddedWBBand.Application;
    if Disp <> nil then
    begin
      Disp.QueryInterface(IID_IOleInPlaceActiveObject, IOIPAO);
      if IOIPAO <> nil then
      begin
        IOIPAO.TranslateAccelerator(lpMsg);
        Result := S_OK;
      end;
    end;
  end;
end;

흔하게 보는 밴드쪽 키 입력 소스에서는 엔터키와 델리트키가 동작하지 않는 코드가 대부분이라
약간 손을 봤습니다. 유용하셨다면 댓글하나정도~? ^^

출처 : 사진찍는 나귀