VSTO for Office ProgrammingGet to grips with programming Office using Visual Studio Tools for OfficeV. VSTO for Office Programming. A step-by-step guide for brand-new Office developers who want to explore programming with VSTO. This book contains. With the arrival of Visual Studio Tools for Office (VSTO), developers can now program Microsoft Office from raudone.info framework. There are.
|Language:||English, Arabic, Japanese|
|Genre:||Health & Fitness|
|ePub File Size:||18.72 MB|
|PDF File Size:||8.55 MB|
|Distribution:||Free* [*Registration needed]|
Office VSTO for Excel, Word, and Outlook, . 3. Office Business Applications 3. Office Programming and the Professional Developer 4. raudone.info for Office. Request PDF on ResearchGate | On Jan 1, , Vivek Thangaswamy and others published VSTO for Office Programming. Programming Download Add to favorates [ Vote: very good! 5 4 3 Programming .pdf To Search: VSTO for Office Programming vsto.
Provides information about how to create an Office project and configure your project in Visual Studio. Provides information about how to use managed code with Office solutions, including how to customize the Office user interface, work with data, and troubleshoot problems. Provides information about how to automate Excel, create Excel solutions, and understand globalization issues specific to Excel.
Provides information about the differences between building Office projects and other types of projects in Visual Studio. Provides information about the differences between debugging Office projects and other types of projects in Visual Studio.
Provides information about how to make Office solutions available to your users, and the major issues to consider when you choose a deployment method. Provides links to sample applications and topics that give step-by-step instructions for performing common tasks. Provides links to detailed information about Office primary interop assemblies, manifests, user interface elements, and error messages.
Provides links to information about API namespaces and types that are used in Office projects that target the. NET Framework 4. For API reference documentation about the namespaces and types that are used in Office projects that target the. NET Framework 3. Office development with Visual Studio developer portal Provides additional resources such as technical articles, videos, and blogs.
Git and Github. Technology news, analysis, and tutorials from Packt. Stay up to date with what's important in software engineering today.
Become a contributor. Go to Subscription. You don't have anything in your cart right now. With the arrival of Visual Studio Tools for Office 3. NET framework.
There are huge books in the market that give loads of unnecessary information but are of no real help to brand-new Office developers. Wouldn't it be great to have a precise book that simply covers the basics and introduces programming Office with VSTO using the latest version of Visual Studio? This is that book. VSTO 3. With this book and the mastery of VSTO you will learn, Office will no longer be an application to you; it will be a platform for developing custom applications.
This book shows how VSTO puts Office automation into the hands of developers, allowing them to use the power of the. NET framework to automate Office applications thus increasing the speed of the applications, their security, and the opportunity to use other parts of the.
NET Framework such as its data handling capabilities. You will leave behind the world of VBA programming and take your first steps into the powerful and exciting world of using C to create Office applications.
Packed with examples and covering all the main Office applications, this book will have you creating fully featured Office extensions before you know it. Vivek Thangaswamy is a Software Solution developer and technical author living and working in the enjoyable surroundings of Chennai city, in India. His range of technical competence stretches across platforms and lines of business, but he specializes in Microsoft enterprise application architectures and Microsoft server-based product integrations.
Vivek is currently working for the world's largest software services company in Microsoft Technologies. He has completed his Bachelor of technology degree in Information Technology from one of the world's finest universities and is currently pursuing a Management of Business Administration in Finance degree.
Vivek loves spending time with friends and writing poems in his mother tongue. Sign up to our emails for regular updates, bespoke offers, exclusive discounts and great free content. Log in. My Account. Log in to your account. Not yet a member? Register for an account and access leading-edge content on emerging technologies. Register now. Packt Logo. My Collection. Deal of the Day Understand the fundamentals of C programming and get started with coding from ground up in an engaging and practical manner.
Sign up here to get these deals straight to your inbox. In this chapter, we went through the features and functionalities of VSTO 3.
Customers who bought this item also bought
You have also seen some of its key features such as custom Task panes, Ribbons, Add-ins and document-level customization, and so on, and how these are helpful for Office developers. You have learned the concept of object-oriented support in VSTO Office solution development, and have also seen the C programming language and. NET framework technology platform support for Office development.
InfoPath aids programmers, as well as Microsoft Office users. Programmers can use InfoPath to design XML-based forms, and users of Office applications can open these forms and easily enter data into them.
Microsoft Office InfoPath was first released as a part of Microsoft Office , but has been considerably enhanced since then. In this chapter, we'll discuss the following: In other words, the. There are two ways to see the files that are contained inside a. The first approach is to open your. The second approach requires a little more effort. You can rename your. This allows developers to create customized tags that offer flexibility in organizing and presenting information.
The simplicity of InfoPath forms solutions is that they provide support and facilitate you in combining multiform process information into a single electronic form using which you can gather all of the required information for your processes. At this point, you might ask: Here's why. Even though the InfoPath designer has remarkable features for creating forms with validation rules, a lot of design capabilities cannot be achieved using the standard InfoPath environment.
When you find that you can't create the forms that you want by using the InfoPath designer, you would typically resort to scripting, or managed code, to achieve the functionality that you wanted. With both InfoPath and Visual Studio, that's not necessary.
A Visual Studio tool for Office development provides an environment that allows you to integrate Visual Studio with Microsoft Office's InfoPath tools, to create a virtually limitless approach to forms creation. There was no easy way to combine InfoPath with programming languages. As a result, there was no easy way to use a language to refine the functionality of a form that had been designed with InfoPath.
Managed code is program code that executes under the supervision of a virtual environment. Programs in any language can be compiled either into managed code or unmanaged code.
Here, the code built on a. The bottom line is that VSTO 3. It provides. NET platform developers with tools for building applications that influence Microsoft Office InfoPath and other Microsoft Office programs, such as Microsoft Excel and Microsoft Word —all in an environment that matches the development, deployment, and security of live. NET applications. Whenever you find that the features of the InfoPath form designer aren't robust enough to get the job done, you can write scripted or managed code to create your ideal InfoPath form.
Managed code gives you many additional options, including creating plugins, more flexible form solutions, and much more. Once you have installed Visual Studio in your development environment, you're ready to create InfoPath solutions by using Visual Studio. The following images in this section show the steps to the InfoPath solution using Visual Studio. These are the dialog boxes and the environment window that you will use when you begin creating InfoPath solutions.
The next screenshot shows the Design a Form Template dialog box, in which you select the type of template that you want to create.
The type of template that you select is normally determined based on your data source database, XML file, and so on. You can also use this dialog box to open an existing form template. The formcode. This screenshot shows the InfoPath environment in Visual Studio Web Service is used to create forms that interact with the web service for data processing. Connection Library will search the Microsoft Office server for the existing data connection that can be used for the form.
NET framework: Install the Microsoft Office clients without. NET programming support for the. NET Framework version 2. Install the. NET 3. Go to Add or Remove Programs and add.
NET programmability support for.
Creating our first example In our first example, we will make you more comfortable, by explaining the Hello World example using Visual Studio and Microsoft Office InfoPath Select New project. Under Office, select and then select InfoPath Form template, and name the project as per your requirements. Next, the Design Template dialog box appears. This is where you choose the template for your design requirement.
In our example, we will select Blank and click on OK. The solution will be created with all of supporting files for our development of InfoPath solution. Let's write a Hello World message on a button click event for an InfoPath form. In the design task pane of the Visual Studio window, you can find the Controls button hyper linked. Next drag-and-drop a textbox to display the Hello World message and a button to write the Click event for, from InfoPath toolbox.
Right-click on the button and select Button Properties from the shortcut menu. This will generate the Click event for the button. Add the following code into the control's Click event: The main components of an InfoPath form that support customization are: You can apply a set of rules to a control or field to specify the type and range of data that users are allowed to enter.
If a user enters an incorrect value into a form, data validation code will display error messages to users. With the support of data validation in InfoPath you can also write custom code to achieve complex validation. Microsoft Office InfoPath imposes the distinct XML schema whenever a user enters data in the InfoPath form; this is also known as schema validation.
Several new classes provide you with the ability to generate data validation errors for cases that previously couldn't be detected. With the use of these powerful InfoPath data validation capabilities, you can enforce business logic more thoroughly in your Office solutions.
Custom actions on save Developing custom save functionality for an Office InfoPath form template is easy to achieve. The SaveEventArgs object can be used during a save operation from an event handler for the Save event to determine save properties and to perform the actual save operation.
Switching views Microsoft Office InfoPath forms support multiple views. When you open a form in InfoPath, the default view appears, which is based on the user's previous interaction and previously-implemented rules.
Microsoft InfoPath provides the SwitchView method to allow you to shift views from inside the form through the use of managed code. The SwitchView method is activated from the View object, which in turn doesn't activate until the Loading event has completed.
Here's a simple code example that shows how to switch views: Object model in InfoPath solution InfoPath forms are intended to be easy to use. The concept is that a simple form can be used by numerous people in a small workgroup to collect information. For example, a person marketing team might use different instances of the same form to fill out and share information about client calls that the staff make.
The data in these forms might then be merged into a single summary report that is sent to the management every month. On the other hand, InfoPath forms can be more dedicated, meaning they can be connected to existing databases, or integrated into existing business systems.
One of the main advantages of Microsoft InfoPath is that you can use it to quickly create a frontend for your input form. The importance of COM is that it is a language-neutral way of implementing objects that can be used in different environments. It is similar to other Microsoft Office application object models—the object model implements interfaces for collections, objects, properties, methods, and events.
So, if you use the InfoPath object model to write code for your Microsoft Office InfoPath solution, and then decide to make that form template compatible with Microsoft Office InfoPath , you must remove the code or rewrite it using the InfoPath object model.
When Microsoft launched InfoPath , they added several new objects, collections, and enumerations to the existing object model. Previously, in the InfoPath object model, objects were packed in three namespaces: InfoPath, Microsoft. InfoPath, and Microsoft. In the new version, all objects and collections related to InfoPath are packed in the single namespace Microsoft.
The following table provides a quick overview of the InfoPath object model. It shows the frequently-used objects whose names were changed depending on their usage in programming.
Value Set field1. SetValue Understanding the InfoPath object model functional area The InfoPath object model is designed in such a way that the same object model can be used for both client and server development environments. The InfoPath object model is a well-built hierarchical type library composed of classes, objects, collections, properties, methods, and events.
The InfoPath object model supports Office developers in manipulating many parts of an InfoPath application or form template with the standard application programming interface. The following are some of the InfoPath managed-code object model classes and objects: This document is useful to all Microsoft InfoPath developers.
Let's look at each of these components to determine how they fit into the object model. The Application class includes properties and methods that return references to the high-level objects of the InfoPath object model.
The Application object in the InfoPath object model provides a number of properties and methods that can be used not only to access lower-level collections and objects in the object model, but also to perform a variety of extended-use functions. The Windowcollection implements properties that can be used to access a form's associated Window objects. It is accessible through the Windows property of the Application object. WindowCollection members have two core properties—count and item, which handle the property called Windows from the Windows collection.
The WindowCollection collection can be used only to get the number of Window objects that the collection contains. The Application class has a property for enumerating windows, which is a collection of Window objects. The Window object provides a number of properties and methods that can be used to programmatically interact with InfoPath windows.
You can also access the view by using the windows' object properties. Views are an essential part of InfoPath forms. By using the XmlForm class, you can easily access form templates and form data. Also, the XmlForm class is one of the key objects in the InfoPath object model. The XmlForm class provides other properties that can be used to get information about the InfoPath form. The View class provides the ViewInfo property, which allows you to access information about the associated view. The ForceUpdate method is one of the most useful methods, and updates the current view programmatically.
Also, the ViewInfoCollection class implements properties that can be used to access the ViewInfo object associated with each view in a form. For example, the CurrentView property returns a View object that describes the current view of the InfoPath form. For example, the InfoPath hosted control, provided by the InfoPath event manager, gives the developers of third-party hosted applications the ability to respond to events defined in the form.
The InfoPath event manager provides this functionality. InfoPath events can be classified into the following three types: In InfoPath, events take the form of event handlers that are created when you work with a form in design mode. InfoPath event handlers must be initially created in design mode because, in addition to the scripting declarations that are created in a form's primary scripting file, entries are also made in the form definition.
After you have created an event handler, you should not alter its declaration in the primary scripting file. The following table describes how each form-level event behaves. A delegate is an object that refers to a static method or an instance of a method. To receive events when a form is processed, you need to first register the events.
You can use the InternalStartup method to add code to register the events. Events can be registered either manually or using the IDE.
VSTO For Dummies
For form-level events, the code displays the following: Microsoft Office InfoPath does not recognize some or all of the command line options. Exit and restart Microsoft Office InfoPath with the correct command line options— you need to update your Office tools with the latest service-pack release. Here's another way to register events.
First, open your form in InfoPath Designer, which is located inside the Solution folder that shows the list of files. The folder and the file structure will be the same for all InfoPath solutions created using Visual Studio , as shown in the following image: The Microsoft Form Definition File the manifest. Click through the sequence of menu items available in the InfoPath designer tool, as shown in the following screenshot: The previous screenshot shows the sequence of menu items used to access form-level events from the Tools menu.
In this example, you click on the Tools menu, and then select Programming from the drop-down menu. Notice that some events are enabled, while some are disabled greyed out. Next, click on the name of the event that you want to register in this example, Loading Event If an XML node includes the attribute xsi: As a result, Microsoft Office InfoPath will not accept the value, and you will receive an error message when you try to set it.
To work around this problem, simply add the code that checks for the xsi: InfoPath will then remove the attribute at run time—before the code sets the text value of the node. To see how this works, take a look at the following example. XSD file by InfoPath. MoveToAttribute "nil", "http: Loading event After you work through the menu options shown in the previous image, an event handler will be created in your code to handle the specific event.
Let's work through a sample to see how the Loading event works in the InfoPath form. The form will display the user's name by returning this information from the Loading event. Show "Currently loading the view named: The ContextChanged event is not supported in browser-enabled forms. Browser-enabled forms are designed in InfoPath and can be filled out either in InfoPath or in a web browser.
InfoPath browser-enabled forms are to be used for better performance and scalability. In addition, note that the ContextChanged event is asynchronous—the event is not activated on every change in the context node; instead, it is activated after the application has stopped processing other events.
SetValue "Context Name: The following code demonstrates the use of the Submit event. MyAge", NamespaceManager. InnerXml; if strAge. Show "Please enter your age! Here's an example: Show "InfoPath Form Version: Using the Save event The Save event is not meant to be instantiated by the developer in form code. You can add event handlers for form-level events via the Microsoft Office InfoPath Design mode user interface.
To add a custom Save event to the InfoPath Form template, follow these steps: Open the Tools menu and click on Form Options. In the Form Options dialog box, click on Open and Save category, select the Save using custom code checkbox, and then click on Edit. BookName", NamespaceManager. PerformSaveOperation ; e. The next screenshot shows the InfoPath form prompt that appears when you try to save the form without entering the book name correctly in the text box shown in the previous screenshot.
The form is in preview mode after the custom save has been implemented in the InfoPath solution. The previous screenshot showed the dialog box that requests a book name for the form in preview mode—after the custom save has been implemented as an InfoPath solution. The following screenshot demonstrates how you can custom-save code in an InfoPath form. Sign event The Sign event will take place only when the form can be completely trusted. In other words, an event handler for this event needs to confirm the Full Trust security level before it can run.
You can use the event handler for the Sign event to add additional data to the digital signature. Older versions of InfoPath stored state values as hidden variables. InfoPath has a new property called FormState, which can be used to store state values. In the older versions of InfoPath, you had to use hidden variables. The FormState property reduces or eliminates the use of hidden variables.
Hidden variables are variables that are used as holding places for values that can be read through programming. FormState is an IDictionary object, that holds user-defined state values defined in the variable declaration section.
CreateSignature ; thisSignature. Sign ; e. Show "Click here to proceed. In InfoPath , merging forms can be done using a built-in event handler. Xml events InfoPath is a powerful data-driven platform. XML events are otherwise called data validation events in InfoPath. The changed event, changing event, and the validating event are the events used for form validation purposes, as explained in the following table: Consider an example where, once the total is changed, the message gets written to the user interface with both the old value and the new value.
We write the functionality for the changed event of the field, as shown below. SetValue "Old Total: This event occurs after the Validate event is activated. During the Changing event, the form's underlying XML document is placed in read-only mode. SelectSingleNode ".. Name",NamespaceManager ; this. Add xNode, "Name to validate.. The Clicked event is activated when a button control on a form is clicked, and is used to display a message to the user. Clicked event The following code uses the Clicked event to display the date and time when the user clicks on a particular button: Show sysDate.
Let's start by creating a company expense report form, and implementing the events for the validation of the user interface. We are using most of the events available in InfoPath in the expense report for some of the user interface validation. Start Microsoft Visual Studio On the File menu, click on New Project.
In the New Project dialog box, expand Visual C project types. Under Office select , and select InfoPath Form template. Name the project as per your requirements. The Design Template dialog box is displayed. This is where you choose the appropriate template for your design. In this example, we have selected the Expense Report template. Add the following code into the formcode. SetValue "Current Context Name: SetValue "Old Name: NamespaceManager ; if xMgrValue.
Empty xMgrEmailValue. A data source is a data structure that has information about a specific data file or database. We may have different requirements, such as manipulating data using the data source information. Or we may need to work extensively on a process before sending it to a data source. Anything like this may need various kinds of data source interaction using code. Populating InfoPath form fields with data returned by the SQL database is not a difficult task, but the scenario is how we are going to manipulate the secondary data source from inside the InfoPath form, and how we are going to manage the data inside the form.
And this is not the only scenario to explain how the data source data can be manipulated; this is only one of those scenarios. Fetch node value from main data source One of the more important processes in an InfoPath managed code solution is the ability to retrieve a single node from an XML data source. In our demonstration, let's take a look at how a single node value can be retrieved using a custom function in C , which returns the value in the string format.
SetValue strValue ; return xNode. Show "Assigned value is: Suppose that you want to add a row to a recurring section or a recurring table while some user action occurs or while a form is loading.
In the following example, we create a new node through the use of the button click event. NamespaceManager ; xRow. Similarly, you might also want to remove a node from a recurring section or recurring table. To do so, you need to specify a row identity so that the program knows which row has been selected. In the following example, we use an radio button in the user interface.
Here's the code to delete or remove a row: Using the data connection wizard, you can achieve this in a very simple way. In some scenarios, this process will not be sufficient to satisfy your business requirements. If this is the case, then you may have to go for custom coding. Using custom programming, you can connect to Microsoft SQL Server database, and manage, manipulate, and validate data.
Under Office select and select InfoPath Form template and name the project as per your requirements. Add the System.
Add the following namespaces in the formcode. Data; using System. SqlClient; 7. In this example, we connect to the database named PacktPub and get the data from the table named Books. The data retrieved from the database is shown to the user in the text box controls. In turn, the contents of the XML document must be defined by a corresponding schema. These requirements can be limiting when you want to provide some added assistance to retrieve information and populate a form. These limitations are explained below.
Managed code You can use managed code to display System. Forms dialog boxes that are launched by a button click on the form. But doing so comes at the cost of making development and deployment more complicated.
For example, forms that you developed using Windows forms dialog boxes often cannot be deployed by a forms server. Custom Task Pane An alternative to managed code, in terms of supporting enterprise applications, is to use a Custom Task Pane. Microsoft Office supports custom task panes that provide you with tools to make available the features and the information your users or customers require at the place and time that they desire. The HTML file can also have inline script, where the script can call back into the InfoPath object model, including calling any of your functions in the form code-behind script.
InfoPath query adapters are used to retrieve data that is stored in the secondary data source secondary data source is used to store data from supplementary or other data sources, as distinct from the current data source. We'll see how to do this in the next section. The Task Pane functions like a toolbar in such a way that you can move it around on the screen, dock the Task Pane horizontally or vertically, or separate it to keep it floating on the screen.
In the Visual Studio solution, right-click on the reference and then click Add Reference on the. NET tab. Scroll down to Microsoft. Xml, and either double-click on it, or select it and then click on OK.
To add the user control for the Custom Task Pane, right-click the project, and then select Add New Item from the context menu. In the Custom Task Pane, we are going to implement the number-to-word conversion concept and add the labels, textbox entries, and buttons required to build the user interface for the number-to-word converter functionality.
After building the user interface, the user control appears as shown in the following screenshot: Add a global variable for your Task Pane immediately after the partial class declaration: Add a Click event for the button in the toolbar to open the Task Pane.
You have to write the following code to call your Task Pane in this event handler. When the user clicks on this button, the Task Pane will be visible to the user. CommandBars this. CommandBars; Office. Add Office. Missing, Type. Now, when you run the Visual Studio solution with InfoPath , you can preview the InfoPath form template, as shown in the following screenshot.
InfoPath add-in is an option to add functionality to your InfoPath that is not available by default. Creating your own custom controls is just one way of extending the basic set of features included in InfoPath.
By using COM add-ins, you can provide functionality that is not included in the core InfoPath application. Creating an InfoPath add-in project using Visual Studio In this section, we'll see a step-by-step procedure for creating an InfoPath add-in. Although we'll create a specific add-in with this example, you can follow the same basic steps to create your own add-ins.
Expand Office project types, and then select , as shown in following screenshot: In the Templates pane, select InfoPath Add-in. Enter any desired name in the Name box, and then click on OK.
Now the solution for the InfoPath Add-In has been created successfully, as shown in the following screenshot: Right-click on the InfoPath add-in project solution, and select Add Windows Form from the shortcut menu. Name the form that you are adding to your InfoPath add-in solution.
Right-click on the InfoPath add-in project solution, and select Add Class File from the shortcut menu. Name the file NumericConvertor. Add Labels, Textbox, and Button controls to the windows form to create the user interface for your number-to-word convertor. Number-to-word converter is an example that has been included in this section to explain the add-in.
It converts the numbers stored as digits into words; this functionality is not available in the InfoPath by default. The number-to-word conversion code has been written inside the NumericConvertor. It appears as shown in the following image: Here's the code to append the custom button for our add-in to Microsoft InfoPath The number-to-word converter user interface appears as shown in the following screenshot. Test the add-in by pressing F5. Visual Studio will compile the project and launch InfoPath.
The form opens in Design mode, and you have no add-in. Click the Preview button. You should see the Convert button on the far right side of the toolbar. The functionality for the number-to-word conversion is written in the NumericConvertor. But if you create your own add-in, the visual result will depend upon the core requirements of your project.
InfoPath and SharePoint workflow Microsoft has created an innovative product that can be used to satisfy most enterprise collaboration needs. The solution is called Microsoft SharePoint, and is a comprehensive document management system.
Microsoft SharePoint is a web-based document management system that has a variety of features and functionalities that can enhance your collaboration style and improve your business values. Windows SharePoint Services 3. NET and the core Microsoft. NET runtime. Microsoft Office InfoPath is well integrated with Office Server products such as SharePoint, so that you can build a Workflow solution for your business needs.
InfoPath forms also provide new capabilities, such as built-in data validation. The Microsoft Windows Workflow Foundation is built on a.
Sempf B., Jausovec P. VSTO For Dummies
This is packaged with the. It enables developers to create workflow-enabled applications. There are four main parts to Windows workflow: NET 2.
The user experience of filling out a form in a browser is similar to that of filling out a form in InfoPath, but the purpose of this technology is to allow the user to run an InfoPath form inside the browser. An important goal is to reduce licensing costs for the customer and to increase business value. This chapter highlighted the capabilities of VSTO 3.
By working with code in your InfoPath forms, we've seen how you can perform data source manipulation. The bottom line is that Visual Studio has made the InfoPath programming environment easier and faster to use. Later, Microsoft launched Word for the different platforms available in the market. Microsoft Office Word is one of the most influential and comprehensive tools in the complete Microsoft Office software package. Even though Microsoft Office Word is now packed with several features and built-in functionality, the out-of-the-box Word features have never met the real world needs of business requirements.
NET technology. NET developers. In this chapter, we'll discuss: For example, Microsoft Office Word automation is a great mechanism for populating business documents including invoices, estimates, and reports with data from backend systems. This type of repetitive task is typically performed by salaried office workers.
VSTO is the latest set of tools for programming Word. For instance, a Word macro can be used to format an entire document with the same font and style. Macros are limited to scripting languages; new commands and behaviors cannot be built using macros. Microsoft finally transcended macros following the introduction of Office with. NET platform support. For the first time, programmers were allowed to program Word and other Office applications using.Enter a text that will define the name of the Addin in 'Control Panel'.
NET Framework applications that extend Office. You can implement a wide range of functionalities and features to your Office application through add-ins. One leading logistics company has integrated its existing enterprise application with Microsoft Office application using Visual Studio Tools for Office. You can add controls directly through the code. The ActionsPane object supports Windows form controls, and you can change the orientation of the Actions Pane programmatically. An application-level solution is customization done specifically to suit the application—in this case, Word —and is available for all of the documents used by this application.
- C PROGRAMMING BANGLA EBOOK
- UK VISIT VISA FORM PDF
- INKOMSTENFORMULIER WW EPUB DOWNLOAD
- PDF READER FOR JAVA MOBILE JAR FILE
- ADOBE PHOTOSHOP CC FOR PHOTOGRAPHERS EBOOK
- OXFORD ENGLISH FOR ELECTRICAL AND MECHANICAL ENGINEERING ANSWER BOOK
- NUMERICAL METHODS FOR SCIENTIFIC AND ENGINEERING COMPUTATION PDF
- FILM NATIONAL TREASURE BOOK OF SECRETS (2007)
- MOBILE COMPUTING BY RAJKAMAL PDF
- GEET GOVIND BY JAIDEV PDF
- MECHANICAL ENGINEERING OBJECTIVE TYPE BOOK
- JOEL OSTEEN EBOOK