/**************************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 *************************************************************/



#include "bibliography.hrc"

hidspecial HID_BIB_IDENTIFIER_POS		   	 		{ HelpID = HID_BIB_IDENTIFIER_POS		   ; };
hidspecial HID_BIB_AUTHORITYTYPE_POS	   	 		{ HelpID = HID_BIB_AUTHORITYTYPE_POS	   ; };
hidspecial HID_BIB_AUTHOR_POS              	 		{ HelpID = HID_BIB_AUTHOR_POS              ; };
hidspecial HID_BIB_TITLE_POS               	 		{ HelpID = HID_BIB_TITLE_POS               ; };
hidspecial HID_BIB_YEAR_POS                	 		{ HelpID = HID_BIB_YEAR_POS                ; };
hidspecial HID_BIB_ISBN_POS                	 		{ HelpID = HID_BIB_ISBN_POS                ; };
hidspecial HID_BIB_BOOKTITLE_POS           	 		{ HelpID = HID_BIB_BOOKTITLE_POS           ; };
hidspecial HID_BIB_CHAPTER_POS             	 		{ HelpID = HID_BIB_CHAPTER_POS             ; };
hidspecial HID_BIB_EDITION_POS             	 		{ HelpID = HID_BIB_EDITION_POS             ; };
hidspecial HID_BIB_EDITOR_POS              	 		{ HelpID = HID_BIB_EDITOR_POS              ; };
hidspecial HID_BIB_HOWPUBLISHED_POS        	 		{ HelpID = HID_BIB_HOWPUBLISHED_POS        ; };
hidspecial HID_BIB_INSTITUTION_POS         	 		{ HelpID = HID_BIB_INSTITUTION_POS         ; };
hidspecial HID_BIB_JOURNAL_POS             	 		{ HelpID = HID_BIB_JOURNAL_POS             ; };
hidspecial HID_BIB_MONTH_POS               	 		{ HelpID = HID_BIB_MONTH_POS               ; };
hidspecial HID_BIB_NOTE_POS                	 		{ HelpID = HID_BIB_NOTE_POS                ; };
hidspecial HID_BIB_ANNOTE_POS              	 		{ HelpID = HID_BIB_ANNOTE_POS              ; };
hidspecial HID_BIB_NUMBER_POS              	 		{ HelpID = HID_BIB_NUMBER_POS              ; };
hidspecial HID_BIB_ORGANIZATIONS_POS       	 		{ HelpID = HID_BIB_ORGANIZATIONS_POS       ; };
hidspecial HID_BIB_PAGES_POS               	 		{ HelpID = HID_BIB_PAGES_POS               ; };
hidspecial HID_BIB_PUBLISHER_POS           	 		{ HelpID = HID_BIB_PUBLISHER_POS           ; };
hidspecial HID_BIB_ADDRESS_POS             	 		{ HelpID = HID_BIB_ADDRESS_POS             ; };
hidspecial HID_BIB_SCHOOL_POS              	 		{ HelpID = HID_BIB_SCHOOL_POS              ; };
hidspecial HID_BIB_SERIES_POS              	 		{ HelpID = HID_BIB_SERIES_POS              ; };
hidspecial HID_BIB_REPORTTYPE_POS          	 		{ HelpID = HID_BIB_REPORTTYPE_POS          ; };
hidspecial HID_BIB_VOLUME_POS              	 		{ HelpID = HID_BIB_VOLUME_POS              ; };
hidspecial HID_BIB_URL_POS                 	 		{ HelpID = HID_BIB_URL_POS                 ; };
hidspecial HID_BIB_CUSTOM1_POS             	 		{ HelpID = HID_BIB_CUSTOM1_POS             ; };
hidspecial HID_BIB_CUSTOM2_POS             	 		{ HelpID = HID_BIB_CUSTOM2_POS             ; };
hidspecial HID_BIB_CUSTOM3_POS             	 		{ HelpID = HID_BIB_CUSTOM3_POS             ; };
hidspecial HID_BIB_CUSTOM4_POS             	 		{ HelpID = HID_BIB_CUSTOM4_POS             ; };
hidspecial HID_BIB_CUSTOM5_POS             	 		{ HelpID = HID_BIB_CUSTOM5_POS             ; };
hidspecial HID_BIB_DB_GRIDCTRL                      { HelpID = HID_BIB_DB_GRIDCTRL             ; };
